鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 : l5 r6 e  k5 \0 U

3 C! M' O$ r$ }3 Xclass CA2 J+ g  V9 l6 U7 I
{
8 i5 D" m$ ~* q; \  L7 V" V8 [public:
0 f% }% I4 i9 v; |* F- g        CA();6 i% Z( U! L$ N" q
        CA(CA&);- N" O( p' {. |( H, W
        CA(int ,int );( k" _% H1 b/ N7 L) Z) o
        ~CA();8 }' ?' d$ l5 D( o
        void print();) w: \( _, w3 u

4 _. Y- N7 K) L+ e) `' z  [private:
8 M2 ~- e8 ^" y9 s/ a        int i;
  z# |( W7 o- C        int j;
# F# q0 s# j/ K+ v7 e};4 W7 ~* [6 ^9 _/ x9 `, Y
' h4 `; u6 Z0 B3 R
CA::CA()9 i8 C0 }- O, c
{* U. b6 n! u3 M, V: ?+ x
}8 \7 L" d( s9 u6 s+ k1 J. S# G, W
' G+ x3 W9 v+ a5 q1 W: Y
CA::CA(CA&one)* Y9 Q6 C' y- {) m" \- p' K0 j
{! ]% }8 H2 C- g; K2 [
        cout<<"调用复制构造函数"<<endl;4 l' ~, N; Y9 x. ~# z
        this->i=one.i;. }3 G+ V$ A6 m6 u; B* U
        this->j=one.j;
1 ^" e7 ~2 ~5 l8 |) e5 c7 @6 d}
2 A/ n+ D! ]  x* [4 H$ P' e" w+ K! W5 R! A5 @1 G
CA::CA(int m,int n)
6 E$ J; d* Q. x{
& C, `5 h9 X& ~9 j        i=m;
2 x; K7 R) U* |        j=n;. F" [2 I9 O  i6 A$ t; e
}! a! j6 m; G& c5 m

; t5 h; G  ]9 k( Z  nvoid CA::print()
1 ?6 S  e5 }0 p7 s( @" ~2 M* Q% [{
' x3 ~, N+ R7 i6 ?) J        cout<<i<<endl<<j<<endl;  V6 |1 ~6 i8 x+ k3 B9 m2 O+ W
}
( G  ^7 I: s# J6 |9 m4 I
/ x2 V! [  l. @# P! TCA::~CA()
7 S" {# G% c# c{
# C9 k; G. h! T}, g, v; p$ w. b! S/ a, A; g4 T; i

# F$ l$ q* U% C/ \  M# p- ~#include <iostream>, B4 \5 R+ O6 W2 P) H1 q
using namespace std;9 G( q0 u& K/ Z+ s
#include "复制构造函数工作原理.h"
& W, S/ |; e. ?, t( Qint main(void){        # Q2 m, K: U( W1 ~4 X2 Z
CA a(2,3);        
% F! L) X7 E; ^+ E) U: t$ _5 Ja.print();       8 E3 W7 B( \& F
CA b(a);        1 c) h8 G0 T. T% f; ]0 h! s
b.print();
( g: ?1 w. M5 M' C9 J! u, G1 ~% F+ z       0 J0 j8 M! g, e; i& T
return 0;- x+ O. N& \& E! X. X7 y
}
5 j4 }, B7 K' E8 H* P. c+ s( e, a
2 `3 |# x  ?: ?+ I# r4 x. G& |' e8 l% |% ~: f" p; z
) B, ~/ j, U  M# ~9 b4 |; k1 t0 s
- {2 Y; z8 k2 k% F8 z& K
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:% l, g. U) F4 Q. o4 `9 E
1> 初始赋值时:CA b = a;0 F1 o6 i' f: [5 q( q
2> 按值传参时:void myfun(CA ca);
7 s# h# y2 M' p0 x( m3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
/ }' v' f2 x7 j/ f3 |( b* Q
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-3-2 13:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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