鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
0 k1 g. T8 u' a$ X6 f! S
5 \8 s0 Z$ j6 S) _$ wclass CA
+ C0 I) O( O' N7 o{4 R) ^% z) m/ i8 ~6 l4 n
public:& v, v8 M; ?9 M! |  q& T6 l* a
        CA();0 t) G! ^" D' T9 _
        CA(CA&);8 t! E: M/ q* `! c* d
        CA(int ,int );8 C6 J  h8 S  P4 J' ]1 f
        ~CA();) W; |; a* R+ b/ V/ p
        void print();2 G+ [- q' d( u1 W
2 n4 K8 q6 e: A3 B) Z6 |) w# m
private:' _6 K: y: k. {! B& F! K( O: C8 }$ ^
        int i;
5 e- I' ^4 P4 p7 k        int j;3 n2 H6 u( \1 n
};
, h/ J- J/ W" x- V& z. ?6 ^) z( J1 r+ w* @! M
CA::CA()1 P- m& R$ a& J/ R: v. }: N
{
: L" K/ T( w- F$ a  \4 [1 @}2 Z4 E/ l; H6 I% w# x1 d! V

3 k3 e$ c- `2 \# r) B9 ^. gCA::CA(CA&one)* R7 J$ T0 q, y1 I9 P
{
* s2 D1 t& [, G# V        cout<<"调用复制构造函数"<<endl;0 X) x4 V: ?& K% A  Q  K3 ?  T
        this->i=one.i;) i; A4 o6 a2 B
        this->j=one.j;5 l' I6 @$ B) [, i7 _0 v4 Z
}0 \; J% L' G/ n: j; |2 @- x! x

/ B/ N- L+ m, D# j7 r, F0 l) h% A( mCA::CA(int m,int n)
" T2 w" o; L  o6 f, `. E. v/ I& h+ \{
3 C5 t- \; |2 z/ P        i=m;
8 O$ i7 M) ?& a        j=n;3 i4 i8 [) o2 c& `7 H: H8 o4 h
}
2 M" s& d3 s1 r/ M  ]
2 D1 w, X& U6 {6 x- Ovoid CA::print()
2 h2 S# @& Q7 r, ^* E{
" W8 [* K8 T2 f1 G$ K% c2 \8 |        cout<<i<<endl<<j<<endl;
! f( y( |# @6 ]" T; g}* P/ f0 y+ t  {+ B
* k$ ]$ G# X6 r: Z2 @# c' Y! o; y! A
CA::~CA()
( m) }( I  N. w3 y* ?+ ~{
7 A2 F' A" \9 H! N3 z$ A}( N( R* h9 B. @

4 f3 \6 E" g& Y" a" z# e#include <iostream>) K. j& W% X6 R& r. N! o6 K  A
using namespace std;
5 C! {2 \# c- \6 F( K: W7 {; q#include "复制构造函数工作原理.h"
* I1 v: k% `* E) a2 ~$ K$ Vint main(void){        * T7 U% s  e1 U1 |
CA a(2,3);        " r) }( s; J  M4 k% b+ _
a.print();      
# o; {2 B9 S4 r( ^3 L CA b(a);        $ ]* I% g3 p, ^4 O' g
b.print();7 a  u* V2 r; ?  z0 ~2 `8 s. L
       + P. r' k. T2 Y0 O) D
return 0;5 X* y& _5 N, n3 j; |9 ~, a* y
}
* x4 H$ K! i' G  V9 @4 S: A
8 r% t1 b" F7 a) @& m5 Y/ P  u) J
% g8 t  o2 ~1 D  W0 Y+ l$ ^

& M3 \6 }+ i+ |5 l
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
: ^. ~( e' j& w. C  a8 F$ g; b; y1> 初始赋值时:CA b = a;
$ U% x9 L8 A. _# W2> 按值传参时:void myfun(CA ca);; w, L7 k0 ]$ L7 \
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18
5 `6 @  k- V" s5 W' u复制构造函数在以下几种情况下调用:0 }4 k2 k0 i" m& m  z% B& @# d
1> 初始赋值时:CA b = a;
8 |" H5 P* Z5 Z2 I' R2> 按值传参时:void myfun(CA ca);
! ]" c1 H2 U) t) q
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-2-18 02:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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