鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 , ?3 D! S" X; y: e. d

' z: ?. m% k$ C0 L6 Eclass CA+ H* a8 l4 [+ _, Y
{: V8 O9 d: x: Q: r5 U7 q
public:
4 a) a5 k: u( a7 Q% n' f2 C5 P4 l        CA();
8 R8 B$ p3 E/ W        CA(CA&);
/ k  K  s2 |1 Q3 F        CA(int ,int );3 Q* L1 [4 Y2 y+ Y; j$ k; i, F
        ~CA();5 c4 O/ G! _1 S# i- X% Z
        void print();
8 L8 E" ]  X' q+ }6 S! _3 X6 ~9 L6 U9 i3 Y0 B' A
private:
3 v( g$ J: n4 o3 N8 h2 z        int i;
- G; K- r8 p  {7 C  ?4 D7 _        int j;& `  b$ `0 ?2 w, X# k- O
};
- ]/ }, x* o- C: g: D4 V7 o5 A- Q2 g  b( m5 s+ g8 t
CA::CA()4 _& a* Z) Z$ h7 H5 [; n
{4 D+ @7 K  l: {' @
}
& i' c, i% ^3 S# ?5 r' M# o
. B1 M6 w9 s- K0 SCA::CA(CA&one)1 T. J' ]" X/ v* \
{
% E1 k0 \- v# o/ |9 N: k: u) p2 @        cout<<"调用复制构造函数"<<endl;
: [- [0 a4 O2 c( x, U        this->i=one.i;! y& Q8 x0 W$ ?4 Q
        this->j=one.j;; {- r; |3 O9 Y; L' X( ~
}! A, I# X9 e" s1 s) s" [$ O* I# N
' h3 b. r' V. ?5 L3 H0 X0 K
CA::CA(int m,int n)
* ~* ?' H7 v+ V{
" F6 m3 e  M9 m2 R: z1 @        i=m;& F) t  u* B' y3 \4 `4 P
        j=n;
  ]& y& ]3 X+ Z2 j+ q- N" ?}
; S! P+ I6 \) F0 H+ ?' `& D: E
. l6 t4 K$ W6 k- _9 ?void CA::print()3 y, v2 l5 R4 B2 T5 y
{9 d% ~* m  \" N* p
        cout<<i<<endl<<j<<endl;
# j/ V1 H0 R/ q) n9 Y  R}& G+ K1 ^/ y% w0 U
$ q" M+ {5 O. @% f7 _
CA::~CA()9 x, F2 D8 W$ n
{
- |  {8 V# M+ x- d$ a# q}+ z5 _& d4 x4 F/ W1 a" R! N

6 u* N! n1 Y0 p: L1 o#include <iostream>) a. X+ E) z; x7 d+ y$ j- }
using namespace std;
+ \. r- \/ }- X) q4 y4 c4 i) D1 H#include "复制构造函数工作原理.h"
- g7 K2 L/ w2 E3 D$ ?; Z$ x7 mint main(void){        
3 ^- i2 `4 [6 X: QCA a(2,3);        
( C. h6 E# u: F! [a.print();       * r4 O- Z9 x  c9 ?" L( }  C
CA b(a);        0 V5 ]8 ^% Y9 K/ F/ T" u$ Y  z; C2 m
b.print();5 W: q+ ^7 V0 L( s. s
      
- \) w1 X# d! M, v; o: m; G return 0;# s5 `- U! m& }
}1 E% ^* g$ R9 \1 s8 b1 c
9 _$ E# d% P: }( o& e2 @/ I

* X+ R2 `# e, h" @$ Z: t; e7 }
0 `# C' z. I% x% I. X0 b  C6 |2 e0 a- q8 s2 \4 h  H0 S+ d! q& O+ e1 W3 Z
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
! u: h( a/ R+ h% }: D1> 初始赋值时:CA b = a;
7 b" l4 g  F+ J  Z2> 按值传参时:void myfun(CA ca);: V; m$ z  P; M0 |( S$ \
3> 函数返回时:CA myfun2();
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18
3 M, Z; f# Z9 k: t复制构造函数在以下几种情况下调用:
# f8 A( n5 l: M* u% @1> 初始赋值时:CA b = a;* J! u+ S* `/ |1 M3 Y6 H
2> 按值传参时:void myfun(CA ca);

0 T' @" a4 l+ u: y6 P8 M第一个应叫初始化,不叫赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

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

GMT+8, 2025-4-5 22:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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