鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 ! K. q. V9 Q; c9 H

6 o2 H- R" ?! Eclass CA
1 X2 [  }" p, }; K2 {; C9 G; Y{
5 s  d% }% z, g" V& ]public:# {* W- l7 K, A7 w1 l( y- h
        CA();% n8 R! Q3 ?2 ?2 `! B$ u
        CA(CA&);& [, b1 I* p5 A: z! }
        CA(int ,int );- t' s; X" e& j, y
        ~CA();: `. e2 }4 v: l; u: d* K* J) G
        void print();
! h6 D9 ]- N4 V% k+ G& X9 z& [- S
4 |' q% L- t/ A6 i2 }0 nprivate:0 a; u9 Z( m2 R# ?' G& Z4 z
        int i;
3 e! b5 j' K' ^2 i/ K9 e% o        int j;
8 f$ n1 p% [2 L. P4 V9 x  R; f};$ y0 i$ {" y) P7 F' t0 r

! y9 q6 R8 b  m4 |( g' p  ]& KCA::CA()5 T% Y& N4 a9 V/ [
{0 ]4 i- f" c( z
}9 V! u9 [' H. j1 O( _1 ^
" j: h  ^# i4 m- J
CA::CA(CA&one)
4 _0 u$ {' z: k" V3 o, W{: N4 p: M+ _, i' q
        cout<<"调用复制构造函数"<<endl;
6 {, X) g4 y( D% p! A2 _, j        this->i=one.i;
6 |2 U* i2 x( K9 M" z, R2 ^        this->j=one.j;; ~" [. d8 B- H# S' y; Z
}  I& r  g% P3 C& z" g- D! u
, [% O+ K: x' T0 N
CA::CA(int m,int n)' D  @' C5 S) d/ j% E
{# u# ]7 F9 K% l& j3 n. Z  Y) o+ b9 z
        i=m;5 ?7 K$ z* m) _, K$ s1 E. N" x
        j=n;
+ E8 e) B% R; Q3 {7 a}3 L$ v# R0 i/ q2 @3 R
$ [3 n# g! e( z! J4 ?5 y
void CA::print()
3 e, r; q* z6 {) P/ d: p{! B9 B- d# G% [
        cout<<i<<endl<<j<<endl;( J5 P% ^4 y) k  T; b, K
}
7 D0 Z1 l8 w5 S6 n% s, W; k4 o/ o) {; _; S3 ~% B# l! c
CA::~CA()+ Y1 {, p; K: c" E9 F7 ?; V
{% c: G. K! h! k+ ^% X, A/ l
}- k: s! b* i! E3 y/ ^
; t5 H, P' f$ y7 X: }, n. L0 H
#include <iostream>
: J" z+ \2 R0 l7 x7 |$ Rusing namespace std;
" w  R3 ?% K9 ?7 q% L0 L+ |- W#include "复制构造函数工作原理.h"
& E. M6 a: B, }1 Y4 o7 K8 k  E( R  Vint main(void){        
0 F: E+ [/ Z, C" Y0 ~" K# HCA a(2,3);        9 Y, V$ X( ^+ \' ^
a.print();      
5 ?% e( x' X, R4 V/ I! \ CA b(a);        & j3 _2 \7 l; b6 ]3 ]
b.print();; ~, Z% D1 x7 K: C/ N, o) i  n
      
/ Q& c- r/ k* X  o' u% C4 Z return 0;9 I* O3 `7 T5 c  j
}: @; b* }% C8 E! v% k+ c, f' L
) E( f9 o; V: |

$ c; v3 d  i6 ]' I; |# d0 X" t# S5 f; Z. E
7 i& p- M1 G- T. R
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:! A6 L8 W5 `: Y7 _# H
1> 初始赋值时:CA b = a;( C  Z# B6 m5 E0 i5 f! w
2> 按值传参时:void myfun(CA ca);
% w- L; u+ p$ @* H( g% D3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层

. M+ g9 h, V6 @+ F第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-11 19:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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