鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 # t1 Y1 }# m. X$ [$ r3 h

5 H& ~) k6 @1 Z3 eclass CA1 l8 |- C5 o) D4 x$ T1 g5 e& W/ m
{1 [/ }! x  p: e2 _+ s3 l9 T; {
public:
1 o. B3 D) c/ w+ B5 S. r        CA();
) X8 Z! ~# |# ~5 o- l- _        CA(CA&);8 T# S& V) b. {0 V
        CA(int ,int );
# T7 D9 L' E+ l9 n        ~CA();
8 G: P1 z1 E7 b: ~- A6 `        void print();
) X  L5 k2 k5 x1 l: Z+ j: k
) @; F8 i6 r$ I. i' S! Rprivate:
  ], b5 T( k) {+ w( ]& u        int i;" ?9 s1 i, \( v6 U0 {
        int j;
3 a$ G: c3 f+ y5 D7 L};
; z+ R- p4 R& o1 o0 M9 C- J2 g2 L7 L  L, [( S" s9 G4 C3 i
CA::CA()
# c9 r* s" v/ y* B+ L{- p( y/ h7 b9 ?* N, c
}3 G7 U2 U$ n8 n& ^% t

. u5 }9 m* P" O2 }, F: JCA::CA(CA&one)$ ^% Q/ |3 Z* A; e
{- I) E- ^# z! I: @+ A( V
        cout<<"调用复制构造函数"<<endl;' b' R6 H9 w( P5 j$ I% d* }% y- }& {
        this->i=one.i;, U8 E! [6 N# Q; _- f
        this->j=one.j;/ P; t0 N! B& X; W4 X7 @
}
) V: w  w6 H/ T! ^
+ P" L+ K! y: r) }+ s6 hCA::CA(int m,int n)
, T: b2 }) E4 L. b1 x' D( L* z{( w) x/ L7 t; _& O* |& |& P! S
        i=m;) A, w& [0 l1 a; w; C  ~
        j=n;
1 F+ T0 U. S# D" {}2 ?3 l  T5 h1 _7 w6 P
6 s9 i* a% h$ @
void CA::print()
1 M9 i3 J. V, l9 N{
6 O- s$ R; r9 X2 }        cout<<i<<endl<<j<<endl;; g6 `$ P5 y9 Y
}; C3 T; s# E+ b' y, p# f; ]

3 [+ Z! P2 D; _; |CA::~CA()" S1 @; A5 z. l$ }! L( x/ B* d
{5 W2 R. ~; G# _& j" M# N+ e" `5 @, K! g% M& C
}( H' a: j' n/ D% \* y; _

) Q7 @8 H- D2 x( O7 G! P$ {#include <iostream>" B2 D& ~" r& p0 p* U" b4 E
using namespace std;
% H& {/ k! ~2 N1 Z  v& h#include "复制构造函数工作原理.h"
0 r5 K4 H  Z. q" \( f/ e/ hint main(void){        - K6 W7 q# R; C5 D8 T' V
CA a(2,3);        0 h* U1 `5 I, m4 B+ P3 F
a.print();      
' D; F4 W# G; R2 u CA b(a);        
' j! c& H) i. Q* B6 xb.print();
  y/ s& l  x/ S: y- w      
) n1 o+ W% x0 z. u: s0 @ return 0;
3 ^' n& A6 _. u: y; K) E2 X) N7 h}
1 C1 \' _% k0 `% B! u" i2 H
: W- m! m) }8 W* i" A
/ C0 |! N# I. D8 b
5 {1 [1 `: \( i! m- U) r- p) f  Y9 m
$ u8 E' a8 w% _( V6 u0 z
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:5 h1 q8 e. K! ~% n5 x( e
1> 初始赋值时:CA b = a;
5 e0 g% Z) V& v7 A5 r2> 按值传参时:void myfun(CA ca);
; W9 Q5 C3 k1 s# i* o3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18
" d0 D* w/ ]* m! h! Z- D9 t, ^* t7 I& H0 U复制构造函数在以下几种情况下调用:' e+ e% u* B' r! M3 L% ?1 s
1> 初始赋值时:CA b = a;4 W- S: w1 d! v- c1 K$ M3 J7 r
2> 按值传参时:void myfun(CA ca);

% H5 B( ^- ~6 ~# b# B第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-2-7 15:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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