鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 , C, k: v' h5 w

+ v" T3 m4 |) L6 o2 Q. n! G& Tclass CA0 G, L0 y  q* U0 G( r! H/ }( `( f
{2 V' t; X4 y$ N$ J, {
public:
% s# Y" S/ c& o4 H) m8 v        CA();9 H) E& E( M6 S2 Z
        CA(CA&);7 n5 s& j( C  }4 U+ o% c. v
        CA(int ,int );
, t7 c: O- r6 H        ~CA();
, g, c% o4 h% L$ [9 I- h        void print();7 L1 \6 W, m. K+ {& `" o# G$ m$ \1 C1 v

0 |" ~  p1 H7 o( ~) N  `5 oprivate:
6 C/ K  |; _& |9 f; I        int i;
5 D) b3 g+ P  V        int j;( Z; j' i5 m6 [) V
};1 A  O% Y2 X( F! B1 j
5 r! ~3 f1 A4 U9 d5 @
CA::CA()
6 \& [) b- y' [{. g5 j' [  _+ B- c3 o
}. J6 P  U/ o3 M0 V4 n4 l
1 @+ a! R$ u( d8 z' {9 E( C9 u7 T7 N
CA::CA(CA&one)# F4 q* D% S& U% U: @. U
{" j7 E4 k# u7 u" K
        cout<<"调用复制构造函数"<<endl;2 D# ^$ d& X7 ^$ C. A7 i( u; \
        this->i=one.i;
( j, w+ t% ?6 U, I& K. D        this->j=one.j;
3 D  i& v. A; u5 g! C" A6 x}
9 X. A' t6 N) Q2 Y, e$ x7 Y
/ x+ H, Q+ x- E9 {' JCA::CA(int m,int n)/ p2 F( |7 h1 L
{
+ i; ~/ E+ z! J! ~        i=m;
  A! W$ f% F( t1 f; u: l0 F        j=n;; g' s. S5 K2 j- N( H: b4 Q
}; A4 i! i7 R4 o& t
& T3 H9 x1 c% }. B: c
void CA::print()
, f; I) M: n# O. N5 }! V{
, Z1 b3 T, ~  c4 e2 T: `        cout<<i<<endl<<j<<endl;  k% D* }# B. Z2 R5 V. Z- x4 V
}! T; b7 }4 T( h; _

3 f$ p  K7 q& ~& m/ V+ o/ Y: W! d# RCA::~CA()
3 A" a, R0 b, i; v+ s! o0 y& ?; |{  d: O. i6 v6 m- U$ }0 A* N: t
}
' k% @& p0 b" I  }9 T: s
8 r: @0 T0 L5 t, b  E#include <iostream>
4 F7 P2 l4 S+ O$ l$ W" Dusing namespace std;
& _' O& ~( k0 x  \#include "复制构造函数工作原理.h"8 f- ^# |8 N7 b  T7 s0 q! e
int main(void){        
# `6 J, Y& e1 W7 E% oCA a(2,3);        
2 w. A+ f4 n+ F) Ia.print();       : V3 Z; R! [2 _5 o" X
CA b(a);        
' c" k, Q9 [/ Q$ ]7 ub.print();
/ b$ o/ z0 ^% _0 M9 m% I, T! X       . s! X4 l/ ~7 i& E
return 0;" W: E  y2 y; k7 {5 G" ?0 `
}/ Y  f/ }- H- [; e: B* G

0 a1 U7 O% l8 [; P$ K- N0 Q8 G
. J; ]7 v- e" c3 h9 u' s
+ y/ a0 {& Q- _( e9 X  Y+ t7 ?- v: n# r: a: A: A- r5 j0 i
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:/ b! [- }' ^$ D; _* K* B3 g
1> 初始赋值时:CA b = a;
, ^3 }8 Z# W1 k: G5 v2> 按值传参时:void myfun(CA ca);
! _+ o8 r6 q' p- }* I3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18
1 }+ ]6 {# u) i( E6 u. M复制构造函数在以下几种情况下调用:
( {$ ?* F/ U* [+ c1> 初始赋值时:CA b = a;
* ^" J9 }" C' t' h9 b+ m2> 按值传参时:void myfun(CA ca);
$ N  k& w/ [6 C5 V1 q
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-6-24 16:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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