鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 , Z9 Y" J( v" `9 Q

: \( a) X) h) kclass CA
. b; t* `: H. @- [  F* c{& j7 J% f: E/ \& h6 E1 z
public:
* e* g! J+ Z- V        CA();9 F, _. G8 S) s
        CA(CA&);8 w& ]# }7 z& Q8 f; k: ]
        CA(int ,int );
/ f6 m: o( ]3 r+ p: s( B6 c        ~CA();% R+ ~8 x2 f' C% y8 _
        void print();5 G- e4 T7 e/ _, p1 v# n# D

/ y0 \$ I$ @  R0 @' p: Y# gprivate:
- i' l" s  w' e1 g8 {7 I        int i;
6 l" {5 @6 ~5 E8 c& w        int j;
/ a; S5 D& I0 L7 R1 R. |};7 O  b! j  c1 c' ]  q4 S1 q

8 d" ^! L6 a4 L. JCA::CA()9 u+ h# a8 B; [, N% b
{' ?. t' n, L% a
}  ]: v/ y0 e0 s$ ]+ ^8 d2 a
" ^5 G; b: w# _4 u4 N. {
CA::CA(CA&one); U5 L" Z- x$ S$ k8 r: O
{
5 O1 l4 t' T$ e& A) k! d9 ^        cout<<"调用复制构造函数"<<endl;
1 Z; i, n5 [% M9 Z( _- R2 [        this->i=one.i;% R9 t( |4 ^$ k4 Q6 c3 }2 s7 L
        this->j=one.j;
8 g/ M9 ^( S! O  M  }}- z/ T$ W$ W! y0 A

: ~& u2 M' O( `CA::CA(int m,int n)+ Q+ {- r/ p- P( H
{& ?, k3 x) R) O" _6 M  |! D
        i=m;: v, T6 N. z' B- V5 O/ s/ _
        j=n;4 U. h% m$ z# ]
}, P$ l6 I) G9 D, E
9 t4 z8 K' t6 }0 n# l/ ?- U
void CA::print()
& Q+ i7 L6 l" v: f{: U8 N* n0 S' a% P! U9 k4 m
        cout<<i<<endl<<j<<endl;
$ f  Z! V4 {* ^' t}
4 G% _) X+ Z: _! U' F
$ t4 H8 r* w6 t) C2 MCA::~CA(). H9 I. w1 L0 t( n/ L
{
+ b4 {4 b7 X' S$ T8 j& {}
# y7 s& J$ Y) `1 m
' K5 p( U8 O5 m+ _+ o7 z& a. N#include <iostream>. \+ W6 k, X- p* r2 u- |5 H) z7 q2 m
using namespace std;
4 C: O. h/ [2 g4 a/ _#include "复制构造函数工作原理.h"
; R, _9 v2 {( a! y+ |8 r3 v4 wint main(void){        2 i8 J$ F- R5 C+ N( c1 M9 r
CA a(2,3);        
1 R+ ]' L$ P# ua.print();       6 J! u; ]* l2 @
CA b(a);        
7 _  z: L/ n3 b' j; r( l- q7 fb.print();
5 }" x6 V5 e" D! D/ D       : Q: }" g$ u6 K& {7 ]" q8 \0 Z
return 0;
7 Z: i0 q9 v- E0 b/ k4 G8 o# h. ^}3 @! b4 L7 J3 i3 q" H0 J
, J5 `; e5 N( A
$ g3 b6 @1 v% p2 n7 {

) C' L6 H; |6 r5 E
; S8 r' l) }# \* h9 K! [7 M" r5 o' o
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
% T! t$ i+ ]* z" L/ R4 i) L1> 初始赋值时:CA b = a;3 s; x! `  E" U# d! Y8 O" h
2> 按值传参时:void myfun(CA ca);
5 L$ q4 F; C- H3 y/ b) }3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18
  _. P' \1 [% |/ V8 a8 a+ z复制构造函数在以下几种情况下调用:
3 P/ [* @- o! y' d" @7 m1> 初始赋值时:CA b = a;8 t  k! U7 ~6 S; s: t% d
2> 按值传参时:void myfun(CA ca);

) M0 F3 h8 d$ s9 L( u第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-4 02:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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