鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 $ M0 X# x3 t& V% g
8 Y4 n. |4 }$ m+ H9 F# C6 Q5 P4 P
class CA! i; j+ U/ A( r0 l3 t! }
{1 s6 R2 I: w1 o5 P' \& d
public:
8 u5 n2 m  K; z3 E$ ?        CA();" [) m+ t8 k) [& ]) @
        CA(CA&);
. ?9 p8 x/ s  D. |        CA(int ,int );3 Q& ~# ]$ f1 c2 k
        ~CA();
5 F; Z$ H) v) k3 b4 S        void print();
) y- ]7 h3 f1 M- q2 @/ ~
5 Y  s" R8 D* [: U4 Yprivate:- f* q6 q; }0 u* h% M; G0 v# v
        int i;" D: B" p* y8 R/ W$ j  u# V# X5 S" P
        int j;
! U  ^  M2 u7 W2 F9 R/ C3 h};
; L7 ~+ }0 t+ K6 y* ^7 G9 Y8 Q6 v, N' u# Z* o7 I
CA::CA()
  H+ w  p- q$ W" N, A" @* [{
4 B4 _) `3 y: t) p  Y, L# Z% s}, G; s5 ?% ~) A6 `- `4 t. E

  S* d* ]2 @+ g. pCA::CA(CA&one)% I1 u) \& G4 _- x- [* r  K# x
{
+ i- Q2 i! N3 G        cout<<"调用复制构造函数"<<endl;1 O/ W- |: ]2 B# E
        this->i=one.i;
# H9 E/ M. |8 v0 b) e; A. {9 S        this->j=one.j;1 x9 ^/ `- ~" _% P1 B7 U6 Q6 N
}
' [$ \- F- @; R7 m$ e( Y3 ?+ O
4 V2 [  ^+ K, d6 l4 A6 n5 pCA::CA(int m,int n); [8 y; x( g4 f( W# z
{$ l4 x6 i# O8 d* \1 M5 g
        i=m;$ z7 b- Z% n+ M/ M6 \: _
        j=n;
- P. Z8 l3 q8 s% j  R}& o$ n8 d7 P- _# ^" y2 Z
+ j% @' j4 p: z1 r# `
void CA::print()
. [/ R, ^) }4 S) M# _8 T" P/ q{
9 k- x9 T5 M8 U$ N. }6 n, U        cout<<i<<endl<<j<<endl;
2 N  M9 {# ~, H( m/ U, s6 i}
; E/ ]2 L% a6 d* n- C
, N; r7 s& }/ y- g, p4 XCA::~CA()& y8 ?5 r0 z+ ?3 [8 i) a: I
{) |- O$ U# C5 |0 X1 ]
}: E. ^. v# c, t  I* i) E; g

4 ]; X) Z& x/ F( e- V; ^#include <iostream>
, o2 u1 A: Q2 S  I: Busing namespace std;
; _9 F: f! `  y#include "复制构造函数工作原理.h"
2 Y$ Y, {9 V- s6 I. wint main(void){        
7 k6 n: Y  o2 b& Q1 `8 t6 aCA a(2,3);        
  m9 `. h# w  Ta.print();      
' Q- V. `8 s; W8 k+ {2 I/ N/ E CA b(a);        - C& V3 Y: R4 o; e" b9 V
b.print();0 G9 z) x1 n/ F: p9 I: z
      
0 `. L& A, T4 a9 U( P9 G$ J6 J return 0;) A) X* ]& M7 f& D$ j
}
  Q5 X  V# I% `' S! `5 ]7 T  m; }+ t# i) D4 Z
5 Q  @' O0 r9 f9 O! U+ Y
! L; A6 _$ Q* K2 q+ w' c! }

+ b8 R, |" q7 w6 B2 ]) S  E- n
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
8 i$ x2 Y1 ~- y: r' B7 Z# B1> 初始赋值时:CA b = a;9 q2 w3 ~8 S! x+ a3 T
2> 按值传参时:void myfun(CA ca);
$ h1 ?' ^! @/ k/ p8 F, W) p! I) X3 X3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层

6 H! v4 U5 T  k) a第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2025-12-3 05:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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