鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
& Q; |3 @& g6 V8 Y7 d) {
. v/ P' v, q1 O3 z  M- h) \class CA% M  q0 @% {* M3 {# N: f& g  ?3 T
{7 n& c' p: V2 r: l! C% q
public:
* X% Q0 t: `9 [9 T        CA();( }% e" n! }7 C
        CA(CA&);+ x" b+ q6 x( x* g8 S
        CA(int ,int );
" r9 n! @9 A% R4 D* t" G" T        ~CA();# Q7 n! g% F$ U* O0 o  H' X: X
        void print();/ [0 K3 D9 l- R% F% |* y  G
% e0 F4 `/ K( j! D: Q  E' B5 j* i0 X
private:
4 j7 W2 i, _" \5 ?  n; u        int i;1 H' g1 K2 Y. q; k
        int j;* G" X$ _1 m4 p, ?
};
5 S% F8 F# l' H8 ]# A, l' A$ y- `
5 i. Q0 p+ {! a: J8 VCA::CA()
; k& H! P5 d$ G4 x) I: r{
% t" i9 @0 J! r: M}
  p) }1 ~( }+ X1 a1 k
  L: y5 a) ?( Y3 i9 ?( tCA::CA(CA&one)6 w* V) R! D' s3 R2 r# @+ {
{4 s1 x' O. H  e. e4 l+ I) X
        cout<<"调用复制构造函数"<<endl;
; d0 y' q- Q" w' d5 V- Z2 T% M; O! L        this->i=one.i;
5 L& W: G7 d0 ~* D) L4 _( D        this->j=one.j;; D6 ?' @3 H* K+ S8 k$ n. j$ v8 f
}
  v" H; X* H; e/ h0 Q/ S
5 S8 u3 `$ Q( A0 C- hCA::CA(int m,int n)
3 Q1 Y0 }' T2 Z# w, _. S' c{
& Q. V$ Q% a& \' b        i=m;
0 y7 F" |8 M7 C4 N4 ?        j=n;2 U6 H! F4 G; d% x! v! {6 t
}
7 {+ x3 H. D$ z& I( u
+ L4 I7 S0 i* rvoid CA::print()
6 Y0 V5 V: M8 [{
  t5 e- f; K7 I7 W; E        cout<<i<<endl<<j<<endl;
6 i5 X% _( N8 `! ?. S$ s}
5 D9 \+ n7 g6 ^% ?5 j0 Y8 _& X) }' [  e5 P
CA::~CA()6 e: E2 n% g. R% h- l* r6 S
{7 c5 u+ H% _3 p+ J3 p. O
}
- v1 Z4 Z$ E8 d- }9 f) ?: `" @$ ?! B2 g. Z0 V* y' m7 t
#include <iostream>0 u* H% d5 y* K2 k: B$ a$ d0 O2 i
using namespace std;
0 g! B* O& ~9 l1 f7 g! @#include "复制构造函数工作原理.h"8 y% q3 |. z! c% g- {
int main(void){        3 p% M2 D6 m; Y% A) ^
CA a(2,3);        
4 B7 S1 j4 w, P9 r& t4 `a.print();      
* k$ W* c. h" ?; C7 { CA b(a);        ! G2 I: f1 K' e* v" w
b.print();
; m) n- ~+ }2 m( c3 @- c! |      
4 j3 z2 C4 l9 o$ R5 M1 F9 o" X return 0;1 l: o) P6 ?- E2 J$ |
}
& W  m% L0 }% |- u8 R2 W: F" @- e8 u' d
9 C: x( j' L) R

! L) S; r% G4 ~# |' t6 r
, {1 k6 @; p: P& `3 h3 I7 {" q
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
5 I) w9 j0 j6 H$ }1> 初始赋值时:CA b = a;
) C3 t4 C. e2 f0 j" x+ x2> 按值传参时:void myfun(CA ca);
1 j  i+ v$ a4 q3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
* h! F: u( z4 w; U
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-26 05:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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