鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
2 ^; Q. |8 q8 l0 R' w4 F; `# M7 D
0 D! p9 |) P" g5 Hclass CA4 K$ d! @) y9 `0 a
{, M# A9 h: W# v# I8 g% t# k/ E; B
public:
" }4 N+ r' M7 o+ C7 L        CA();
2 L7 n# `$ l1 A! _. B        CA(CA&);
; p8 i" u& [% ~6 n" B" b7 }        CA(int ,int );4 S$ t# i! ?& u1 F& h' ]2 g
        ~CA();- d0 e: h) t; D: h
        void print();
% {' ]0 l7 ~" X* W
0 |7 D4 f; ]8 y, g$ Jprivate:
4 D0 {" N% T# g8 i6 z0 ~% F        int i;2 ?! w: U5 x9 ~4 R6 R: w
        int j;
% x% s9 ^+ F0 @% a6 @* u% H3 J- k};0 R" v0 Q3 n& k
0 Y2 b) [% F4 ~4 {
CA::CA()' d& ~( G# X+ g) R6 y  R
{3 M, c# x+ y8 u# _, m
}
; @% f" a8 I( C+ B0 b- `- S8 ^9 Y8 P* N
CA::CA(CA&one)0 F& S9 G% J' F  ^0 r! D' u! V
{9 A% O+ ]) Q( k9 Y' ^" y% `
        cout<<"调用复制构造函数"<<endl;6 G( X- T) H' Y6 W. E
        this->i=one.i;
! N3 u9 W5 O" i8 [        this->j=one.j;' ]& B7 v+ b  T7 q1 O" d
}" i! l/ g1 I1 h& H, a7 A5 s; d

6 E; F. B9 W* GCA::CA(int m,int n)6 R* C* \3 [; U+ B& F  w
{% O; D0 Y: U2 s6 L% C/ ]9 d( j
        i=m;2 c3 k( R! M: n/ I' b
        j=n;
! O6 w9 C  W6 F  J9 |* E}" H; H! M) z: k+ D' N
# k0 q6 {" H: K
void CA::print()9 E( {8 r+ b! n0 S1 h" ]
{
8 D8 c/ B0 W! S5 o0 i7 \6 w! T3 G        cout<<i<<endl<<j<<endl;
+ x% i4 ~( w9 O}( {' z4 B1 ~6 k  R+ I6 Z* B8 _

5 e* u1 I5 J# f4 j  O8 JCA::~CA()
1 \" _0 Z5 J* e% w+ X, r' m{( l  @0 a: z3 j8 b4 F
}" a1 f+ d8 Q8 L2 s3 t
# y3 m" Y5 ?' ]7 [  }  i
#include <iostream>9 E1 s7 E) R4 i$ J4 F: l
using namespace std;# _( G0 _4 B$ S: U& o
#include "复制构造函数工作原理.h"+ t, }" Z. m- d
int main(void){        , x  u4 D9 r5 i( e8 l, d
CA a(2,3);        
- |9 r% A  g5 T) \a.print();       / y- F1 u9 V' W$ y* Y. W- s
CA b(a);        
2 X1 u$ P# v, ^! p8 ^& wb.print();
2 e0 h" b! k0 s% M$ [* U      
) g5 N$ w! L3 Z7 k% m) @7 K) a return 0;
4 B/ E; B8 d( z* S4 w! [}+ b6 r& l2 \, q- H  E

4 M# b% I1 p1 f2 b0 n- {  |: N" Q1 H& M$ W: g/ c7 j

5 c% r, z5 H) w  K$ M' m  G( k( d2 a( h6 n
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
& F9 ?5 x9 I$ i1> 初始赋值时:CA b = a;
" e: B2 y; _- X6 J& M: o$ b2> 按值传参时:void myfun(CA ca);; U" j/ ~: D6 }
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 % M9 f, `8 m" o% D5 U
复制构造函数在以下几种情况下调用:
' ~6 ]. `( h9 U8 A" L1> 初始赋值时:CA b = a;
0 b) N# J! h( N/ z/ w2> 按值传参时:void myfun(CA ca);
- ?# G* n5 u: \" z1 Q
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-2-13 12:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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