鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
4 X" c6 W5 n" k! T
( E+ I1 f1 b( V$ m) m! T2 uclass CA' O0 }& o8 ?4 V" p9 L, w+ E" Q
{) z' ^& x* z/ A2 {6 u2 C3 ^! p
public:/ Z& J  R: t( ~' s3 r! q9 V0 \
        CA();
3 b: J6 |6 ~- F, C        CA(CA&);
: `2 |* X) E# O  p. k" z5 q        CA(int ,int );( J6 [$ O$ X8 j* k8 L+ k
        ~CA();
: k. ?0 Q1 \1 P5 {        void print();, Z7 X5 V& j" N, w% G
& C2 \: o+ R8 S6 N
private:0 u/ s' q7 \' o1 H1 [
        int i;
" U; O2 U- l; H4 o        int j;2 q! F! m; G/ U" y- R; ~4 m# ]
};$ V% i' F/ s& {: i
3 I) Q$ K" U6 o, F& r0 F/ h
CA::CA()
5 ], k3 |1 d3 r; T2 X1 Z{
+ \; B, ?% P- L) k/ S7 k9 _8 d}
( k- W  M- U/ ]/ |" |! I
: @3 R6 X1 u7 p9 U- tCA::CA(CA&one)
6 \6 |+ W. k# t2 t{
/ |2 X: z- v1 J# U3 V7 B. v& Y7 U, H        cout<<"调用复制构造函数"<<endl;/ }, A- a% @. W$ H+ Y- {+ `
        this->i=one.i;7 c- s; ?1 D, G. u" f: Z( M+ ?% [+ Q
        this->j=one.j;& L( C+ z/ v6 \' i0 n6 m' Q
}
( ^6 P6 ]- S' q4 x& z4 R- @0 Z' a4 @4 D6 D5 F
CA::CA(int m,int n)
; o2 v8 t& j/ K9 m{0 n! p  v7 t+ @# v: C* X6 b# c( M6 L
        i=m;* L+ D8 h- v# |" G3 s5 `
        j=n;# v  K+ H+ S! k( b* q
}
/ ?3 F$ X6 ]0 [# u6 D
" B# S4 H- ~. A8 ivoid CA::print()
) S3 A/ j$ k* I2 X% z9 i{
3 M* J7 u8 d+ K0 `8 X7 k        cout<<i<<endl<<j<<endl;
- g3 h! b! C# m. i. e}8 _  W6 u+ O: Q( l# e2 X9 c" V! G
: K  x3 [* _. C& a: H. i% I+ r7 q2 _
CA::~CA()
' @- V# ?9 \7 j; H: R5 ?{
, z9 w- q8 \: D/ s! E5 L- e% X}: R1 u+ @5 Q. m5 k: t
- H1 L, t; L( Q5 K8 `, T0 [
#include <iostream>
& r' z% ^% I  {using namespace std;
3 [1 }$ r) w9 Q! L0 R" F  |, R, E+ J8 Y* L#include "复制构造函数工作原理.h"
4 }6 p7 J( V; b, e$ ^$ J2 kint main(void){        5 `5 H  H* F) i% b5 C# g
CA a(2,3);        0 D  y  T- j# L. F! _/ l
a.print();       : M5 }/ J/ D# V. ]6 w5 Z) Y
CA b(a);        5 _; Z$ K$ A% h8 |! M3 n/ ~
b.print();$ g- V) i! u% _  J- R/ T. p9 K/ {
      
( D# T; ?. b: ?1 M, l return 0;! @& [( Y  U9 \+ X, v$ C! }6 A
}$ B# `! p* c0 |  p6 j& L' C2 ]8 |+ c
! B& N- ~" k: V+ A

+ n) p5 a, G  _3 o% ?0 g; u
5 Q1 m2 p0 {- j/ o* ?$ U  {& f& m0 p' \9 |' T5 S) a0 B
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
" Q7 p8 P7 i# v8 Q0 m/ {1> 初始赋值时:CA b = a;
# O) z+ j% z5 B' D3 i8 u% w2> 按值传参时:void myfun(CA ca);6 N1 s5 y5 a  L4 W! t& r
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
% M( g! B& a! j! I) k8 N
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-18 03:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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