鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
: F4 k( ^  `  b. O! v
/ f8 Q5 p- z$ u; a) @9 \6 H4 e/ Jclass CA
; `; B* S- w7 N# m{2 I; @2 V% R$ k) ?
public:
' ?9 [, q! i7 |& F! ]        CA();
! C0 Q+ A* L4 _) U$ A        CA(CA&);
+ t5 Q  x5 p. J- F        CA(int ,int );5 k$ v% v1 A$ P% y  t! D: L7 p) S/ S
        ~CA();2 _# u( n: W- u* y$ G
        void print();! w  Z1 Q- o! e8 \- h% u
$ C8 h9 j& ~+ a1 B2 ?6 D. K
private:
; y* q  |/ c9 C. I# b/ d% K, e: X        int i;! E- B. i- Y$ I
        int j;4 @5 J* A; _+ Y  h! b
};2 \' g) @6 F6 q# }. N

* q1 K0 P- J* ?; DCA::CA()4 T9 |% L6 }' U0 M# b8 b& i
{
) a& _1 O$ M# R4 O6 n0 c}0 `+ F5 t% S% x9 X$ ]" g

9 `+ h9 _; q- E2 b1 z9 e. fCA::CA(CA&one)1 f1 r, h( F$ i  F1 A, i
{; \4 n6 M7 |# U; E/ ^( M, O$ r
        cout<<"调用复制构造函数"<<endl;
& @" p/ T/ H( M$ ]& G/ y# ^        this->i=one.i;
" U# j0 a, H4 G9 y5 G! ^1 C        this->j=one.j;+ a. I* A% p: }8 T5 o' R! a, @
}8 S. |3 b4 J$ [1 F8 ^
9 ]: n& C& }% F# z; t, t2 @6 T
CA::CA(int m,int n)
5 n5 T2 }, J" [9 Z{
; E$ \; b* A$ y+ T, Z        i=m;: e" D6 M; L  _, c/ i
        j=n;8 f/ P* r  c" Q" q
}8 o3 \, L/ F8 Z3 y* m# N6 s
0 ~. s* o) s1 |3 G0 T
void CA::print()  S4 v- i+ N" R- o
{* G" `, U* I. Y% _
        cout<<i<<endl<<j<<endl;* c9 W  B) C. s5 F5 ~$ M) a4 E+ i1 y
}4 N) A7 }8 a5 p& o, Y' i

: \/ o* ~2 C' P/ B8 `9 I/ ICA::~CA()& I- l! r0 J+ ^5 a
{7 {  B8 R) H' ?" B
}. x/ K2 X5 q/ f% Y5 f: h2 ]

; Z4 u, l+ B' r2 ?" Y% x& a#include <iostream>
4 {) y, s3 X# musing namespace std;! z5 R# K: n0 \, ?8 z0 ~; N+ ?
#include "复制构造函数工作原理.h"
9 l3 c# U* r4 S; j. |$ zint main(void){        
6 p% z, V6 p" `CA a(2,3);        - A; x  B1 k' ?, Y5 K( l6 g$ @
a.print();      
- {1 |& ~4 |4 m) }( j! { CA b(a);        / V* H& v  N# W9 ]: Y+ t
b.print();
4 }* J! C8 Y6 X% E  a. }0 T  Y       + @: ?& ^; T. f6 C& M* f4 H
return 0;
  I6 ?6 t# C8 H}7 d" f& m" i% q0 u5 C; i

3 s$ ?$ Y* e( q( O0 j: W
2 V# S- l8 ^- }6 i, O9 F  r  ~' f  {; B* ~4 ^
( P4 g; C( A( }( _; C' i9 y6 m5 g
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
7 Q# {3 P. J* w+ k" K7 ]1> 初始赋值时:CA b = a;
4 U' R# _) f' m- |2> 按值传参时:void myfun(CA ca);* N) ]# F) d$ }0 X! \1 M
3> 函数返回时:CA myfun2();
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
2 p" w7 M: c( K0 `: m! V' m8 ^
第一个应叫初始化,不叫赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

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

GMT+8, 2024-4-19 11:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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