鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 % o1 z& d  E3 Y; {2 E3 h

1 y# v8 o% U4 O% K% M. Vclass CA  y0 I" w$ n6 Q9 w, z& i$ v! F) Z4 B
{
* w- `4 e: z' y# d- ^' }/ ppublic:% K: Q- B' m) B
        CA();
9 t# X: E/ u# O3 e; X& M" o        CA(CA&);
+ O4 ?) E! E0 t5 L# }* u. J* [7 ~        CA(int ,int );
0 d; U; Z. }; B: U+ {& D+ S        ~CA();' i- }  |/ h$ p# U7 H5 q
        void print();, m7 S9 `0 R# m3 k* j5 G# Z+ e5 g4 z

: D% v$ N. r7 S! o) e7 \private:6 C, V% G, Q: x, v" ]: r) t' V
        int i;9 N( T, |8 c4 y5 _
        int j;
+ D8 r- [8 }1 L};
  ]7 }) R( q$ C% T& e2 ^' d; @
. C0 p3 F/ N5 `- c/ a0 ?CA::CA()7 H' m- Y" R% T) k" @/ _
{
: {6 L& y6 e8 R- v1 h, S. f7 Q}4 x; n. y% L" l% k8 u, k; z
8 ^* @- t9 {# z3 c- L9 |. g( X
CA::CA(CA&one)- J4 ^1 L% f7 B9 p" p
{% \9 D# k3 L2 [- ^' m2 i/ a
        cout<<"调用复制构造函数"<<endl;
7 r. c) t' Y! L) e        this->i=one.i;
: D6 C% m/ I' z4 K. h        this->j=one.j;
; U2 X0 C0 T+ a8 N; a+ s0 @}
2 B3 G) W2 z) R  R2 T3 d+ @* {6 V* X% H8 [
CA::CA(int m,int n)
( }0 K5 X2 {3 J% l{
0 K0 t$ U1 C" m        i=m;
7 v8 {# j& M' w2 U9 q        j=n;1 a; K! A. h, T6 L
}
) g. _4 {) {# d& s5 t$ u
. r+ W$ s; U, P! d. }6 J) yvoid CA::print()
" l* x9 H* }: ]+ |+ `{
5 C6 o& G0 o8 r& d2 k        cout<<i<<endl<<j<<endl;4 \' J% l, K( I) p& X$ Q
}' ?2 a8 B/ d) t3 z. _" C
# N, N' _- a" t* O' _) Z
CA::~CA()
+ j! C; m# }- I* e4 [2 l{
  _. s* E) A2 T% @' H}6 m2 f; M) Q5 |+ D' {% G

0 J5 d- N4 {% H" Z#include <iostream>
4 {' r4 Q1 _  Z4 i5 x/ a" Ausing namespace std;5 k4 Y) Z! |8 B* |' W- ]
#include "复制构造函数工作原理.h"( O: Q- D" D$ J9 y8 ^
int main(void){        
# f5 |8 m5 i( f  c+ W+ r1 H7 \CA a(2,3);        
3 A" u6 h- I* F5 K" Za.print();      
/ v, G9 V5 P( U' _) h5 P% m CA b(a);        ' ?- P% E" e3 @+ E
b.print();
& \" D" ~6 v. I7 \4 d       % d- A9 q0 R5 X' N$ j
return 0;
1 D& p, q9 w3 z" [}
1 l' t: |  m3 L9 j$ h
8 P- n3 N' m5 f9 ?
) M3 I( \. U$ f1 B) K, w1 a* u2 C; N- R( {$ S

7 p! Q0 j" W+ T2 G7 @
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:; b' ?/ h5 L6 Y) S$ @
1> 初始赋值时:CA b = a;1 D% c$ k6 H' J7 s! H
2> 按值传参时:void myfun(CA ca);
, }- R+ n, i( \8 Z8 T5 W3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 5 g9 z+ b/ i9 m. `/ A
复制构造函数在以下几种情况下调用:
4 P! K5 ~8 n' B6 n4 H( {; \1> 初始赋值时:CA b = a;
$ Z1 Z9 p3 q3 ~; U2> 按值传参时:void myfun(CA ca);
& E4 Z4 b) W& ^/ K# q" G
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-2-6 18:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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