鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 / t8 W$ O, D! e; u; ?- G, R/ C

, d+ W" x3 X% |% Y' J" y+ R) v. d0 zclass CA7 O, B# C( @! a' j6 b
{
8 b; [4 `+ _% m3 y8 w2 ?; spublic:
, G1 Q5 e- P6 q3 @        CA();. g+ h9 Y$ s' k7 q; p
        CA(CA&);
8 L" M* P2 Z. A1 a* O4 K8 x        CA(int ,int );
- y$ E- \& s; d( Q        ~CA();
4 [. v) x! M* ^8 x" b! r        void print();5 a& `7 ~4 [" q5 w5 R0 i
" d: H7 Q) U* G
private:! V5 C6 f$ ?7 x8 m/ p4 X3 {
        int i;
( b4 |4 s1 H! M' A0 Y        int j;
0 N8 F6 B5 H6 T' S+ ?7 W};& X3 g. M* y: H7 \8 \& t

, ]) h, l" p& Z1 lCA::CA()
$ `; i. h. Q7 [* @{
! `* N- K% v- \}. {& N. m- s' P2 P, D* T( ^7 r4 w
  S! @2 U  u* ]- k
CA::CA(CA&one)7 w- V- ~% E3 Z4 q
{+ j9 b* ^0 P# [) W2 e& b0 H' ]/ R
        cout<<"调用复制构造函数"<<endl;& l' B, V% D0 j8 |& ?. {# X2 B9 t
        this->i=one.i;/ o2 [  m" c: o4 \& x
        this->j=one.j;7 M' I- ?$ M1 H$ ]* p2 s! C! Y
}
: X' Y: o0 b8 J2 i
9 \* O) U9 f7 e. f6 jCA::CA(int m,int n)
. F  V) o* J$ J* T0 I{
7 L* L/ B) N( p        i=m;
' Q7 T; ?  ]0 g% q        j=n;6 K% A  w5 W  b/ u$ f
}* m1 K/ g- n& F( }# o9 ?8 W
% `* Y# H' O& o" K# p% Q& ?
void CA::print()% x0 d- f8 i  m& n3 G. c9 a. e: Y
{' n% Q& k4 P/ N) ?
        cout<<i<<endl<<j<<endl;
# l3 {( G1 M- ?- x- b0 M+ @4 ~}
* d  n9 f. D2 I8 {, V* V, v# f3 D4 I4 d5 b( p
CA::~CA()) J1 C# m( H9 @% b7 T( Z
{
* u3 ^; ?' m( U) Q}
+ p" A' u, l- a& v1 S& J( u
  J/ a, e0 q6 ]& j0 b" B3 D* ?#include <iostream>0 Y3 a; g4 z/ x& {0 w) q& p' j
using namespace std;1 \6 ]  n! M  B
#include "复制构造函数工作原理.h", G5 K* U( q: ?7 o0 v$ h
int main(void){        6 y) D6 U6 @7 P0 M: E9 B
CA a(2,3);        7 }& n/ v- l" [4 v" q
a.print();      
& X' f  ^8 `1 T7 p1 U$ ] CA b(a);        
5 g1 O9 `  K( l" P  [b.print();
# \. y2 B+ [, |4 t      
) t& z2 l% b9 N, d5 b" m* w return 0;# J  m: N$ Q+ c2 o6 N) m% b
}
2 E: K5 N! d9 g4 R- H8 p9 R4 I% p% K& V+ F* ]  Y
7 x2 T+ R+ k5 X8 T6 R; ^
* P* |  y$ ^+ [; b: O) K0 Z

7 t- S$ }: R2 i& C/ ?  P
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:1 {$ B4 B3 {/ x/ k' W
1> 初始赋值时:CA b = a;5 F& P. _3 W3 W2 w& E
2> 按值传参时:void myfun(CA ca);, n+ k: i9 {/ d( p  A
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 1 U( N( R$ c# [4 [) \7 q; h( g
复制构造函数在以下几种情况下调用:
. j1 ^" U* X6 C' p5 P5 G1> 初始赋值时:CA b = a;9 h3 Z+ \  f7 A8 i1 v: B
2> 按值传参时:void myfun(CA ca);
9 A- w( \' D9 h' y# p; G( E: o
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-1-29 20:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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