鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 ; j# V8 r9 \' |# G, P' G( v) `

/ t: Z3 L7 Z' y8 F) T$ I" cclass CA$ p; h% R9 Y% Q( I# ~: X: v
{
- f" B' O- X3 ~1 Ypublic:
9 g9 ^6 ^0 p! f. T        CA();3 j# D9 s7 p0 _0 M- H% ~
        CA(CA&);1 a( \) k. b- P4 O
        CA(int ,int );
+ C* ~2 |, G: p$ v: o' P        ~CA();
( V2 m+ _/ [( o1 D9 f+ N        void print();8 T  C2 O( ~+ E  g

# L' ~6 y0 I7 }private:, ^) i5 h; ~4 L) |
        int i;
( Y4 f) U, ?% k4 [" ]        int j;* V- a# U3 O  c
};
+ ?/ O* Z' u$ Y# N# |( ~+ q% L" t9 G7 o' u
CA::CA()
/ h, E% C- V% \  l( ]{
" Z5 i+ N6 q0 ]6 v- Q}
7 w* w5 c! y( Y% _
& }" X' d7 b7 oCA::CA(CA&one)8 Y  {. z+ k& k6 C" i
{0 Q( N9 n$ \$ _, B& r
        cout<<"调用复制构造函数"<<endl;
# y6 s, \# A* G1 @9 r4 B) _        this->i=one.i;
' b9 Y& c4 W- W, X0 w+ X        this->j=one.j;5 ~0 U* i& A# W5 z4 G3 f  \
}' X, H* ]" ]1 i. V* t( e2 F% ?; v

7 O8 y% U% R8 X6 i* v# A  P$ mCA::CA(int m,int n)& o/ Z7 n4 g. p1 d  J# v2 p7 }. @
{$ w( S* Q" s$ t
        i=m;. h6 p2 F& R% r
        j=n;) W1 N! g* @9 j3 J# }- v
}
8 o2 x6 Z0 \0 C) J+ \
& |- A& O2 j. ^+ c8 E3 C, ?! evoid CA::print()( Z" x, V" h4 P2 a
{1 O( H2 P" S9 q. s
        cout<<i<<endl<<j<<endl;
' c0 v5 C+ Z# Y. L}
5 |: ~# W$ X$ ~0 B4 ?
4 l# u. ]) h- a4 d1 KCA::~CA()5 [% M- X4 E7 E: x
{! V1 v) x0 z9 E3 {
}7 V. u9 P9 ^  D* U( \
- \0 V7 g( l* T( y9 K! i4 z8 ]
#include <iostream>
0 p5 W, K0 K/ q8 E- C8 Eusing namespace std;
3 I# a# B1 B. ^8 l0 a8 g/ P#include "复制构造函数工作原理.h"
# I7 R% ^% [+ {" A) h2 E5 a' \' u  N: cint main(void){        
9 {7 s4 ?. t8 k8 @3 z) Y' kCA a(2,3);        
3 w) P4 k( s* [1 J; La.print();      
5 V' w# f; O& ]7 _( U2 b9 H CA b(a);        ; G% e: n6 C3 ^0 x" b
b.print();
& N) ]' u6 h1 Y- ?7 F3 O      
6 {! @8 S% Y5 a" G' W! [9 v7 w return 0;
/ R( c7 ?9 d+ a9 F! G}
  H* z" ?. J. P0 T
9 q  ?) Y; r' x( }. X2 M( G6 I6 q0 V
* Z6 ^" y0 o; E; E

$ w7 _7 N' y0 B3 m8 A
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:, v; c' {1 T9 {$ Z5 T& h- _
1> 初始赋值时:CA b = a;3 J: _1 ]& |7 ?
2> 按值传参时:void myfun(CA ca);3 L2 `4 n3 Z! a% u
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层

" x4 W% a$ ?4 d" {# e) j7 T第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-3-8 07:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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