鱼C论坛

 找回密码
 立即注册
查看: 3214|回复: 2

[C++个人笔记] 57.复制构造函数工作原理

[复制链接]
发表于 2013-3-21 09:14:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
; t; |- v' ?/ z2 c/ y9 Q
. N& p* I0 Q. z' Pclass CA  V- z0 b2 X5 ?6 o( j* u
{; u/ }; N1 h  e& N
public:
) U, `+ l+ k1 p( R# x" A        CA();
! W( [2 q0 I8 H' U3 b8 T        CA(CA&);
  y& Z  R2 }. {# r/ T* y5 h        CA(int ,int );
' t& Y! Z. t( f        ~CA();
/ S- h  a) u9 @6 Z( g0 z        void print();
( Q) }4 s! @  T2 I2 P
9 h2 t* V0 j  {3 m6 O: C/ U* w" [private:
3 m! t: ~# D8 V" ]# \        int i;; i( v" Q) R; Y  ^
        int j;
, V) {6 g' m0 x0 o9 [: x$ g/ I8 |* O};" H) @3 ~% q3 ~: w9 [' w
3 V: ^5 X/ a/ V/ f0 w: e
CA::CA()
8 _! |& u4 H2 g/ O+ L{
; D/ {# n4 o1 U  U3 W4 I}- E! n" O% x% X2 t8 Q; K5 q  j
2 l! p. B& `/ g( x0 j
CA::CA(CA&one)& R0 A! l* u5 }1 \& f2 K
{
6 i' {' }  z: N% y        cout<<"调用复制构造函数"<<endl;
& @9 `7 v1 \! d. }! v        this->i=one.i;
) i, _. ~9 E( p5 p$ w0 W% F) u# k        this->j=one.j;
. a# L1 w9 T* H% p- J}
9 P3 }8 E' ~! ?9 Y2 C, T& f& Q2 L4 L: u# p2 s, ^- G- W9 A5 t/ f- V
CA::CA(int m,int n)
  P- O  q/ i" y$ ?/ J% p4 s% L5 G{
" n9 Y2 T4 i4 U( [+ `. ]        i=m;8 l. L5 {$ a' a; n
        j=n;7 ?+ w0 `. o8 C+ l
}
7 `! }, `. G4 ]3 Z! p& J" y; d
, q2 g' X  j2 c# U) f( }6 Xvoid CA::print()
( R/ p$ h" x8 Z; q) u3 _- _3 z{5 a7 K0 Y1 t6 t& G: O/ [4 ^, b% d. I
        cout<<i<<endl<<j<<endl;, a# \3 z& e5 d* w5 R4 [
}% W2 U+ d/ b2 Z* l9 \2 z4 i  r
8 Q" y, k2 W* r' k5 Q+ k  F
CA::~CA()
" m( p! p% R# r' e9 r{% m2 {) @7 H6 l% @( i3 M- `
}
$ }" f  o* a  z+ G# t, N
7 E. f+ M7 n2 |$ a- ?& e' t#include <iostream>
4 |1 M# m" J/ p9 S5 Tusing namespace std;
4 M* i2 O& ~" f% q! Z% m; E#include "复制构造函数工作原理.h"' i1 O1 q6 b, d3 @6 S
int main(void){        
7 H8 S6 e1 r- d0 LCA a(2,3);        6 e# S" c7 F" Q& d) e( C% T
a.print();         y" }; ]2 c) ?; G) _, a" ^
CA b(a);          u4 l4 E2 k  \, X0 m* p; g  Z9 B1 Q
b.print();2 F1 k& J6 L; ~. t. Q2 y0 N* X8 @- V
      
. r# x  u# f5 l return 0;
& j7 B7 {3 [  b9 {- f* y% ~1 D}" c) h" h0 r8 e7 i5 q8 w

  ]+ m" }( k9 V$ ]* G
# `! P3 [& g+ O& S0 v$ ]8 C0 ^; G- N9 X8 q$ D5 B( g, M: \

( Q) {6 e0 V6 q; l9 Z
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:9 E* _4 ^5 N  s4 j+ C
1> 初始赋值时:CA b = a;2 c9 F: A7 R6 U2 i; f7 r
2> 按值传参时:void myfun(CA ca);
/ h* W: K9 Y$ D! b4 P2 B3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18
2 q# @, f- R9 E; L1 g. }3 t7 _复制构造函数在以下几种情况下调用:8 H9 b; s: E9 X  w2 m0 d) r
1> 初始赋值时:CA b = a;
- k9 n% y* v6 I- w2> 按值传参时:void myfun(CA ca);
& h0 j1 ]3 m; r( v
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-4-8 04:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表