鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
8 x/ V% j4 X, V7 F- F
" f% N8 d8 ^# N' B- l- b+ zclass CA
+ Z0 S3 \4 S3 V6 ?{
' a# r! g4 u& G& F5 f7 s; w# t! dpublic:' y, x3 Y) f' q2 M& w3 F# y
        CA();
( N+ {% l$ J/ W2 `        CA(CA&);
7 P8 S- ]2 N: M5 @" v/ [        CA(int ,int );* }8 F" }8 u+ O/ I* E
        ~CA();5 L3 B& K$ H) _4 Y# L8 d. r
        void print();
6 D1 i# M! x0 |" L/ S9 S8 X. O- {  V& u+ d
private:
$ V& A$ Z6 B* P  U& C9 i        int i;
6 @# h7 B4 ~. e- u        int j;! t8 u9 I; {1 V: m5 E: p8 z
};5 H. ~, }+ I3 V! h) S* [) K0 w
. y' ^5 X/ o  i/ t
CA::CA()
7 Y! \  q5 }2 K, B0 B% x{  m" B8 Q+ `0 H6 o; _2 B
}/ H% a, L5 \4 o3 T6 y/ j9 X

0 h: x* S- v3 t. j: n* GCA::CA(CA&one)
" g8 Z4 K0 W. |{$ h7 Y# R5 t) X! O1 r7 J9 A
        cout<<"调用复制构造函数"<<endl;
( t# J7 |8 c( F& U1 [9 a9 j1 m        this->i=one.i;" |* d2 {' O0 z6 C. ^6 P- J
        this->j=one.j;7 k+ U  u6 X" V% }' f
}6 E! y1 W4 z, ]2 ?/ g' o( z- j

1 r: S* b( `* s7 w( KCA::CA(int m,int n)- c6 G4 {# h% T6 M" S4 T
{5 g5 r6 J4 u3 z/ S8 |
        i=m;6 l7 z5 o5 D& Z: ^
        j=n;2 U, W" B! c& t
}7 \4 o/ y4 u5 ~# ?  W7 A

9 N1 ]' H3 G$ w( h! X" lvoid CA::print()
6 W, J$ Q  G0 D- p9 a{* D8 O4 w0 G9 Y% {9 `
        cout<<i<<endl<<j<<endl;
; \5 D; ?: m8 M# S}8 g& F  Q3 `1 s  a2 ~5 \; F2 _0 h0 H
% d! J5 k3 q2 f2 e- s; w
CA::~CA()9 D7 `% k  x! [( P
{8 o) O9 K2 n) u+ P2 s, E
}$ h$ R! j4 Y4 T4 I: O. m
) c# L  t" _4 I; Y
#include <iostream>
. U# A: l: t8 h- v8 z/ [. Nusing namespace std;
9 o" X" ^- }% y#include "复制构造函数工作原理.h"
6 F- k& x+ V9 {int main(void){        
( \% ^0 R6 Z% m- C; ?- D* ~- mCA a(2,3);        . r# s4 u& h% ?: R
a.print();      
1 E2 s- U8 ]: X9 T" U" m$ g9 h6 o CA b(a);        
$ x( P7 r7 T8 }. kb.print();$ U" t8 ^1 c% _1 ^% N( m% F- J+ |- H
       2 @8 m: ~2 O6 \( W5 O/ y" R9 w
return 0;
( @; t- k$ s' Z! r4 D. \}
4 `) |3 V" B9 a" i8 {* c
  S* U7 f$ g0 W! h4 b& z, _0 b5 x
2 `5 ^  C- Z  i9 m! H: g* Z2 c# J
  ^& \) i1 p9 Q; e7 Y2 F
! X# y1 q& \; q) S: q
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:0 z4 O4 H! h! p( D+ B
1> 初始赋值时:CA b = a;
/ ?- H/ S, C' L* S% Z. F( M2> 按值传参时:void myfun(CA ca);
: F& g4 G9 [/ E6 Y' D1 b3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
" @( e# g. o4 Q( G% `. v1 j7 k
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-26 19:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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