鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑   U" Q* ~2 F2 Q. d2 S+ J& N# M
! H4 z2 S- f( j! p7 ]! T% X$ O
class CA7 N" ?$ X9 ?& j/ _- ?) U: r
{
# R' @$ R# e( I' Gpublic:
3 O2 a3 s0 ~  r        CA();) O1 _5 X: K8 w, c0 r1 {! ?6 k
        CA(CA&);
7 e# z: K+ s  ?* m4 _        CA(int ,int );" x; y/ Z" L8 L$ }
        ~CA();
" [: ?0 E$ v* h        void print();
7 Z. r! |3 }" y% S0 h6 H* N$ V1 D: R4 m0 {9 H2 m, d
private:
( ^* ^. b0 M) x  {* e$ B5 g+ _        int i;
6 V+ A! h% {3 ^9 V0 }1 s8 c        int j;
, ?. y6 c$ f% _};2 o: n$ N( N; U2 o) s4 l$ ]

  \4 e1 B8 b" g* R: @' P  B- LCA::CA()! r! m, f$ g4 V# ^- \9 }
{
- T/ F9 V: i9 _. A) D$ p' O+ v}
  u- M; G* N8 L3 ^4 ~  B
/ x6 x: C$ ^# g( I! ~CA::CA(CA&one), ?" v% f; Y2 e; _5 k5 X! M4 k. A; d8 \
{
6 s2 ^; y" u" ?& U5 }1 |+ ~        cout<<"调用复制构造函数"<<endl;* W) k/ s( P% V$ W/ v* g: J# l
        this->i=one.i;
7 Z8 y- j) ~. Z6 E( |        this->j=one.j;+ Y) g2 W6 _- H. l
}% V! t! ?. e: [/ S- S

& d1 n4 g5 o* m- G: DCA::CA(int m,int n)* h. d& r$ A7 M* g$ W6 d/ |# A: D
{
& h- d! d& p' o% |$ r3 x9 `2 m( ]5 p        i=m;# H4 y5 a* l# N5 I0 w0 @! y2 o
        j=n;, x. O& R: C+ x* T
}
! R! v& T" |9 ^- O3 u  [2 b% x/ C; c7 j7 S% }  i5 Q" I& m$ J
void CA::print()
9 f8 W5 g) e# c$ J: x{
% }7 e( @% c' P( T9 t9 U; i8 ]5 \+ @        cout<<i<<endl<<j<<endl;1 \  L# p9 I  X7 T8 u
}1 f) v0 C6 q( G) o3 {. G# f# X

$ \4 _0 H* ?' ]7 n9 U- fCA::~CA()
* d. R- z) }# G' B& `7 C5 m{
, T6 p$ h" h/ A}
* n2 y' g! m) P9 y  o+ ?! L6 h& Y0 p) }" Y5 X  d- Y0 o3 C
#include <iostream>- h' I; S0 [/ [/ s8 k/ S
using namespace std;
7 W0 v' G0 O% T. E/ e( K#include "复制构造函数工作原理.h"
; _+ s2 c2 G% |0 T9 eint main(void){        
; A. c: I" B9 e4 }, d1 XCA a(2,3);        & r- u& `2 ]5 N2 U
a.print();      
7 c! e3 V! p# n, T: i CA b(a);        0 \9 u# ]8 p4 g( B
b.print();% E6 y$ y( C) ?
       2 u9 w( `: a3 r. H2 T
return 0;
$ G  w1 p6 `" y1 k# }& G, ^' N5 i}
0 F) D- b/ |3 \6 J# ~, ?( e! Z( U$ j, S6 t! H  M% `) e! W

! P( Q2 O' S% b; @2 u5 x4 B0 c# l" G
) H7 b' f. R2 ]7 j* H! n6 w
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
. z3 u" s* z$ B/ `& S2 j8 z, d1> 初始赋值时:CA b = a;
8 i9 r* G" {0 Y2> 按值传参时:void myfun(CA ca);" F* }) e) a1 s: K# b2 i- }9 M
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层

; s6 e9 o0 w% C- V' V0 Z第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-1-15 01:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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