鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
$ l3 q3 M! Q, Y% o- g
+ V; e+ Y, a% P6 m1 n8 h  fclass CA4 b# ^' W) ?& e) A  L' l
{  v& p* m( W/ W' Q3 ?" \
public:: Z  X8 f& |: `, k& `8 F4 y
        CA();! Q9 s, I7 l+ ~* d* f
        CA(CA&);
' f1 r8 t' w# R        CA(int ,int );
* d& Z/ [. e6 t# }5 m        ~CA();( G" t5 Q# X' F  a9 w: O
        void print();
' r0 u! y, G/ q. v' x3 D# q# g7 O5 s6 ?" \- P1 \
private:' C  v2 Y8 _) _2 X, K
        int i;
/ a9 W$ V, x2 o6 O/ c& k) j        int j;
9 ^* [4 f) g# p: y* [; Y6 O7 B};
8 p# }7 y; m# c" m6 G, h! F% A+ H# T
# y# k% f" J, L+ t( \* qCA::CA(); R$ V5 k, k- ~) g
{
3 N% Q# Q* D5 k. c, N% x! g# n}
& T. C* f& ^9 C$ n" B1 r. ~6 ?
  k: }8 t. H' fCA::CA(CA&one)
+ b: {2 W) B! g, C9 V7 X. }" h{9 g& h* G7 {) r3 J3 ]7 U
        cout<<"调用复制构造函数"<<endl;
" B& }% f8 x( h) x* F        this->i=one.i;
7 ~# V2 s# o4 x6 j9 D, a" t        this->j=one.j;$ o/ a! @7 P0 F
}* r; |! u8 Q# b$ j# ^, Y

7 y! A8 x* r/ a* F! C, K  L/ ^& UCA::CA(int m,int n)
  T! u( M0 w  S. R3 p) a$ d- i! x{
0 y" ~' h5 [0 o& M, `        i=m;
1 M' `9 w, y: K0 s6 @8 N. v        j=n;9 g2 w+ Q; ~2 K. d! X8 b/ {* @0 a1 W
}
! g4 l2 x: e0 t6 _
! C% ?  Z  P! ]9 ~7 evoid CA::print()
' C/ l: \% b" o, ^4 [{
$ H- N0 s( o0 F7 |. K        cout<<i<<endl<<j<<endl;# @5 M# d# T  h- T
}4 G# I8 Z! X1 U4 V
1 s( M, I+ ^0 F- D9 p& m
CA::~CA()
* e  E3 {6 h; W& I9 p. G2 D4 E) P{) b3 R1 R# D; {7 ]( \- r
}
) Z9 A; b) ^+ E: m: F! l7 I
9 d/ \2 K3 N, |) @0 V1 p#include <iostream>8 @8 L* N. B! @" K* n$ }1 P
using namespace std;
. i& g+ g, i7 |% y( \# O/ l#include "复制构造函数工作原理.h"
: C0 Q+ d. `7 H' \+ xint main(void){        
# m9 C, g+ N& oCA a(2,3);        
, p1 }) \- u* l% b3 ra.print();      
! q' k& P% {- r6 w7 L CA b(a);        
) Z4 u, p9 \0 r; T1 v3 R* |b.print();
+ K2 T  L" i4 j3 [4 g       8 C1 O- \) W. Y$ [- I: t2 E  y0 s
return 0;$ L# _  A( @1 j
}
4 A- v: K. `2 i' h! ]( j3 N. _! U9 K
0 L, A( \8 V1 A3 c3 v

/ y6 v7 v  P! n% D5 \/ f
3 `8 L3 g* a( a! H, m3 w% _
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
- D8 }  ]  ^9 `, |3 X, F* u3 B+ _; S1> 初始赋值时:CA b = a;
7 I+ ?4 W, M$ S1 ^) @2> 按值传参时:void myfun(CA ca);5 z& z' l$ d% d5 V6 Z2 i: ]
3> 函数返回时:CA myfun2();
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 ! I- p: @5 I' U4 j1 ?
复制构造函数在以下几种情况下调用:7 \: u3 K% Y0 Y) s
1> 初始赋值时:CA b = a;
% [6 z. B# G! G! u8 @  _* B* p2> 按值传参时:void myfun(CA ca);

3 ^4 h+ x% v- I' y3 j3 E/ f' V% _9 y% _第一个应叫初始化,不叫赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

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

GMT+8, 2025-2-19 07:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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