鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
' a" C/ h+ p& M# `& Z* L
5 [) l7 }+ K- M$ q8 f( Fclass CA
- l" {: E# c( C& i! c) |{9 v( F5 w$ M, Y& T  f9 d) r5 U
public:
, T+ m% w. P' C- u9 o* E        CA();
' b, B- k0 W+ T* e& F        CA(CA&);
+ n& b4 l5 z# [" C& b$ ^        CA(int ,int );* k1 o$ v8 Z% a) U; `$ n* [- g; o
        ~CA();3 ]8 y! W" k# C2 x% n" r9 x5 T) F
        void print();
# `. ]$ G! t" a7 W1 ^7 k
3 ?4 @& Q# W8 d* j! [: \- Wprivate:
0 h/ d6 F2 D! m8 z, w        int i;3 j. Y0 f' U* [! ~
        int j;7 `0 Z- C  f9 s
};" ]* s2 b: {3 h! R3 s0 F. @* N

* C: L# T8 l  H2 N6 b) U( HCA::CA()4 U  Z1 ~( c( _# Y& \. k9 f/ T- e
{
5 J$ s- }& g) d0 {  i}0 G" f, E9 c5 I0 F! }( `

; s/ T7 C; v* \% Y% `5 L, _9 zCA::CA(CA&one)
2 D0 b8 J" A5 m  w$ ?5 X0 H{/ k$ H0 d' V6 q+ a/ T4 L: E* Q/ W4 m
        cout<<"调用复制构造函数"<<endl;
4 y8 v. B0 w& p4 u5 r( \        this->i=one.i;
  K; J0 }, R/ D1 F4 \. h; L        this->j=one.j;( N0 g+ D1 i3 V. q  C- \
}  G, }% k; t: J7 P' {0 o9 d
' V7 I9 k& r+ x, U
CA::CA(int m,int n)
# t9 f' E  ?5 H+ X% O( e: T{0 P# X% z2 D6 R- `  m& q) y, @% N- L
        i=m;' ]: N' k7 G6 N5 R/ O5 H6 ~7 K
        j=n;; [" I+ J( E. o9 j5 r' `6 s
}
# b# Q* d7 r) q9 O  l" Q0 {3 c8 J3 ~: r9 p
void CA::print(): b9 q- Z. k; _0 r) K+ D5 i
{3 d/ P0 b# ?. W
        cout<<i<<endl<<j<<endl;
$ J* W* Z6 i1 w' `}$ N4 ]+ S2 r  w. w. d; ]
: n* s. U3 E% {+ R$ ~
CA::~CA()
. b' j) N7 W" C3 i7 [& Q' ~{& R( f7 c$ t# H/ d0 e4 i  g8 x4 D
}
: B' N+ y; y: B/ V, ^" `
: d, g! i  D. }# @6 p. p#include <iostream>) p) j$ A7 W( e& F
using namespace std;
' C2 Y3 y! H3 {0 \#include "复制构造函数工作原理.h"
% g# b: m/ R0 f6 m+ x5 M9 b$ s% Uint main(void){        : s8 J+ K4 X! a: `; r9 ~6 `; E2 Y/ j3 z1 C
CA a(2,3);        
" x# d% }( N% j! ]: Ka.print();      
" D/ n9 ?+ L: V& X, X CA b(a);        
' m& x  j/ x) B9 I6 qb.print();" W) L1 S) p, ~# E
       ' \" g( K% \* r( k" @
return 0;
% ^+ {: p% p* O}
% a% P/ i1 T2 H) {" C' K% w" k4 b
! k2 w- p1 o; ?* ~8 R& n3 T
' D8 g  ~/ i% F$ X) H/ Q; y
5 k% B$ t" y( }* X3 E' F3 O. P: G4 Y/ g7 c/ c, z2 ]0 B& N' c" B
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:/ y2 _' c4 M  @! b2 P! W/ a0 X
1> 初始赋值时:CA b = a;) n3 [1 L( H) h/ U. u' v
2> 按值传参时:void myfun(CA ca);3 S8 ~: y9 J' l3 u
3> 函数返回时:CA myfun2();
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18
9 G2 W- \1 \0 W# a/ T0 D7 ^. B复制构造函数在以下几种情况下调用:
: i" v3 A$ x) h) Q0 `% ?- k1> 初始赋值时:CA b = a;3 j8 s6 u, @8 `; \( p  _, |
2> 按值传参时:void myfun(CA ca);
" U; h  L; I0 P
第一个应叫初始化,不叫赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

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

GMT+8, 2024-11-22 20:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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