鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
; M3 s1 ~- `0 m# G0 ?/ `( d7 _
4 o, y  T& o! M' `8 b3 u0 `/ R/ Qclass CA5 \9 C( c- g4 F6 `2 ]- G
{
+ O7 h: ~% b. @' E. J: lpublic:+ Y" l. E  d% ]
        CA();
, `, f- Q! r) C8 @        CA(CA&);% E, b' r) _/ h8 b) H0 a
        CA(int ,int );
& G/ a4 ^  Y& U2 u        ~CA();4 l* ~  N# C0 ?
        void print();
; g% M, a2 S$ L# l
* }, D8 [. W. Uprivate:  A$ A2 k7 s% \. `6 `
        int i;
/ ~/ c7 i0 F% c) k% G4 H        int j;
* Q: X1 ^4 K1 t% F/ ~& W. P$ A6 p# g};+ T& O" V9 {, a) h2 F
4 a5 e- j' B# @; u: s0 X' B& x
CA::CA()
) \4 d- U. F1 M{3 U. v- Q' K5 p0 K
}
& Q# p6 L7 I4 ?  a& n% q/ r* j* Y- ]5 [8 i0 m
CA::CA(CA&one)8 ]. H# N. h9 \6 S4 V5 m# u
{
8 a, b3 U4 @) O: e* D0 W0 I) L        cout<<"调用复制构造函数"<<endl;
0 [+ J- ~1 }* Z) S4 }        this->i=one.i;- M& G! {& v- i$ T: n1 |' p
        this->j=one.j;
% y& G+ h7 M" h8 @( `- l3 K}
3 f, V2 n) b; W- |( x& X) Q+ x
1 B7 e. \/ v; B+ z/ j* K2 S! ACA::CA(int m,int n)9 d1 M1 |5 t$ b- L5 R
{+ L0 z# t% d6 M8 U/ [* Q! D
        i=m;
% k1 J" p8 W+ [; f( a: Z        j=n;4 g; C- m3 d1 d
}
, _7 ?  |; V2 N# W2 ^8 w6 P% S4 Y0 a8 `- U8 h% [0 i
void CA::print()
8 h/ g: v8 y: [: M- Q) q5 t/ F{
+ _2 h8 j, r' [0 ?  i: F4 M! c! Z        cout<<i<<endl<<j<<endl;
- |+ D' O" k& A" v) r}
. u" J+ p. a- r) W' k; K! P. C( A( q% @) v
CA::~CA()
& b; V0 Q# R9 d{! |8 p# p' s# I( @  k/ g  I
}
0 ], L% W: b: f. J  |$ l; L6 o% G" I  ~9 ?" y& N9 H( i
#include <iostream>% a  D6 G' H* a9 e% I
using namespace std;
6 q( [& T9 C3 o#include "复制构造函数工作原理.h"
4 L! g$ ]; N3 h" Tint main(void){        
+ h: v+ ?; l9 b. }. t9 VCA a(2,3);        
1 f4 b2 K' \0 f+ |8 H, [% xa.print();      
3 E6 d3 b- `6 G$ Q CA b(a);          c  @7 Q( j" B5 b
b.print();
9 s! ?2 |) p. g/ b8 K      
2 h: p2 s! N) n return 0;
% {. i. n  B! X! v, E}
% E- o% D/ n, F( b1 m7 D
- o* U3 k# H; m6 @" W  N# t1 R0 e# [# w
3 v, Y2 d* X, O

( O" ], N2 l! J8 ^5 }
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:* N' U* i$ O) L  u" }
1> 初始赋值时:CA b = a;* i1 z7 S& ^& o" @. }
2> 按值传参时:void myfun(CA ca);2 k& z! P, M3 {. T; e
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 % y6 p$ B2 u/ I& Q0 L7 P
复制构造函数在以下几种情况下调用:4 E5 _+ h" M- U4 A$ X5 e2 j1 {
1> 初始赋值时:CA b = a;
: w, X! @0 K( N. C. u, O2> 按值传参时:void myfun(CA ca);

3 W$ U* _2 ~/ N. ^, Q/ |第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-3-31 10:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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