鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑   s9 S, w/ F3 d/ s) v1 ~5 L
0 q) E% d* l$ w" @
class CA- {' ~2 ^8 r$ b. @# M
{" b( b( I# x* Z) w" Y8 t
public:
' u9 T4 Q) J1 U! ?5 j        CA();& _8 o- R/ }+ J+ X/ d
        CA(CA&);
1 R; N% ^7 ~( V        CA(int ,int );
% d  d* ?2 @: s3 [6 i  @4 e- f        ~CA();
0 G' X$ A  f" d- {% \        void print();
9 r! A1 P* c* D  ^6 ^' a( z
' d$ g+ ]! Q! G2 H' `private:
) \! f/ d% B% i  u5 ?        int i;
" `5 c+ ~, i( |2 y$ ~        int j;9 S( I2 j3 m$ v( R; T# z2 g* U
};7 m$ t" a3 x  d, r

: t& }. i0 T, SCA::CA()
/ g% p0 Q" x. z1 G{
& r, k8 Y  Z6 j8 ~) S}2 Z$ W* u/ w* K
$ S* w# |; w0 l+ J# A+ ]
CA::CA(CA&one)
3 K, j/ Z: ^+ W8 q{5 d8 C5 Z$ q! s, Z- q( K  m- M* \
        cout<<"调用复制构造函数"<<endl;
0 d: q: N7 |, w8 Y        this->i=one.i;
5 {& {1 E2 G. U        this->j=one.j;* K2 \* i; v8 j) W3 \
}
7 z9 J% H. N* j3 S7 w  L
& Q( P8 G9 {) ^; G/ Z2 U4 h# r0 |CA::CA(int m,int n)) ^, G6 M: m$ s6 C. W
{- L" o6 E3 ?* ^& Q6 D* J: {
        i=m;
4 u0 e' h0 b" M# u* O& A        j=n;; m% w( D& X. N4 y# x
}' y) S/ @8 K, Q5 X
1 ]+ {% U1 B  R
void CA::print()  c2 Y, l# z( r7 T. a9 o/ _  Z  D
{
5 U6 ?9 C" |% Y  L' N        cout<<i<<endl<<j<<endl;
; o/ i4 |" o( t+ Q# N* \0 I}
5 B7 F! w4 Q$ O& _6 _4 U; d' o: N; a6 L: T+ f
CA::~CA(); O5 D( |4 G8 c" t0 q' S' U  f: S
{
9 A4 d, ?4 w& f+ \% u( u6 B# T}/ R9 i5 u8 W( V& F/ G# @$ ]/ ^& V

0 }. L9 h2 e- B0 k" w: _#include <iostream>
/ D7 m: g5 B" C  {2 busing namespace std;
( d: \7 L6 I; j$ U6 Y. A6 h#include "复制构造函数工作原理.h"
9 e7 U  h$ h$ b: g2 |/ Y1 J  c- S4 O5 T$ gint main(void){        ( N% u6 o5 {  r1 f) e7 O  a5 a
CA a(2,3);        . {; {: J! ]$ H
a.print();      
2 v9 v* f& t3 v9 g" T6 L4 j CA b(a);        
. r, L* ?; Q5 M" Xb.print();  D3 i7 B. m: s* U2 w7 |& F" b5 C! o
       + ~1 I5 Z* u0 \* ]3 ^) ~
return 0;2 G- N& B5 Y& d1 D
}
" Y, W% g5 v0 B$ S) U, P  F) B
& W; H! i7 y4 f. h: g; G0 D$ Y/ R
7 N& v9 r5 @; \4 u. ]
) Y- ~( ~! u3 C# r- U  r1 s7 P. o
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
0 ], ^1 k9 w# l, {+ X9 B( A1> 初始赋值时:CA b = a;
' E. U$ t+ M$ Y4 X2> 按值传参时:void myfun(CA ca);
+ h! B2 P; N+ s2 S( @* i; I/ W3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
; M2 C" q9 H2 n" R( ^
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-10 23:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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