鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
3 Z& x& V6 s! s
( x. v7 j* o5 lclass CA
$ I3 \, s! r# }{0 S5 Z  K2 i0 s# ~
public:
; ^$ u& _: d+ L' t" a% @+ O. O: m2 e5 T        CA();
$ n) ]  m1 j  D- R1 u& {& a        CA(CA&);) E1 Z/ x8 L5 E  ]5 G$ R4 U2 }
        CA(int ,int );2 j9 Q1 S# b4 |. F. p  g0 S
        ~CA();5 b  f* ~& |' m  |& W% h; R
        void print();# k& ], ^* X+ O: m" E
" o, P5 ^5 L6 u/ m, Q+ A
private:
: `* e1 b0 z% Y1 P- j! [2 q: h        int i;
+ ^7 [/ Q: |6 M, d6 u6 C        int j;
; D" a( ~2 C- |1 z/ w% \% N};) @/ }( H+ g! b" G. |

. i# Q0 L% T- d" cCA::CA()4 d1 q! t1 p: c5 i) t* c. L
{, E+ u5 _8 b# K/ H% I$ e
}8 ^) v/ ^' Y# G
% ?# p/ I& B9 I
CA::CA(CA&one)& G+ @6 ^5 k4 @/ C0 W# x' g: z1 H
{
3 e5 ^, w6 @7 _# }* U6 b        cout<<"调用复制构造函数"<<endl;" \( h: l/ V9 t. x' e
        this->i=one.i;
( a% Z1 [) p4 Z" U1 |8 s0 E8 G        this->j=one.j;. Z$ ]( ]- B/ e" N
}
& D% E$ c" C, I. H& y- h! M7 B) K6 p4 P
CA::CA(int m,int n)& v: Q; \1 H7 l0 w9 s9 [$ ^
{
  c8 t/ k6 i& p+ x3 e        i=m;
% X# @7 B- H& \% \4 N4 r8 \        j=n;" C0 q1 Y; A6 ^  z
}
) O# M# F* [/ t2 y9 [- d3 ~, J. s
void CA::print()) t1 e, P) Q0 r/ h
{
  o0 S' L2 |- P7 @        cout<<i<<endl<<j<<endl;5 t: }. m2 F% B3 w. x
}
; y% x# e3 m& S" Y4 B' b1 S" V
CA::~CA()6 z4 b( ^4 p- o$ X
{
! ]" O* S+ _5 @& T& U, n! s}) c& t; Z! l6 s; A2 T" Z

8 w8 r% X3 n6 S3 R; s7 z9 f#include <iostream>
+ R6 p0 A( O, H& U7 Susing namespace std;
1 l( o& [( X$ E#include "复制构造函数工作原理.h"
  A- D! `& F) ^+ t, B0 sint main(void){        8 y1 Y- p: s# d7 N% R
CA a(2,3);        % h" r( t8 f; G# B9 P( s
a.print();      
$ U! I- I  s1 f4 T' r! M CA b(a);        
. V% z; `7 W) R+ yb.print();
) g8 B4 A9 c  u- c5 |" E6 n0 h       4 f9 V. `+ {7 F) s8 y
return 0;! D& K; h' I8 ^( Z' r
}8 [/ \5 x& y$ K; V+ _( z
0 r$ R6 e( n: y: ^# `
# B3 ~$ \; h8 f& x) B" V, q

2 K, ]& L" H# |/ G! M
; I+ O& E) B. m& _+ f* _3 w
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:4 V! W8 Q9 r1 ~3 x9 z$ q
1> 初始赋值时:CA b = a;
! Y2 p; }) x4 _" T2> 按值传参时:void myfun(CA ca);8 Q$ P. f# u; l
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
3 f% _2 j, @( Q! i& h0 D- i0 t( \- p
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-3-7 05:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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