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

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

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

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

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

×
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 & i4 V, f1 B% ~

0 w' |8 D, p. g% Wclass CA
  i, g. c) a* q3 r- w0 ]% F{  n% M, }# l: g, a9 B
public:
- o( E% w. o* p/ s& {$ X        CA();
. I. d; a$ p+ J8 ~* u* i6 W        CA(CA&);% A. [: U; [: _6 O# j. I% X! o
        CA(int ,int );
3 R* M# `" y9 h4 H9 R        ~CA();, w9 N! K5 L5 ~
        void print();
" [" `( I, n" u8 o# M" `6 L. `& t& \5 b8 v" N9 ?( B
private:  ]3 E% O9 H) l  }- k5 B
        int i;9 U6 W/ ^# R' @+ U+ i7 ?# f$ w5 {: z
        int j;3 l2 ]5 N& V! k! F4 n; R3 M- J
};% y7 e2 B) W- w& A4 W, V/ |7 \

, c/ h1 ?4 L. \" m" cCA::CA()
$ r* W2 _5 ^' P1 Q{; m! c# X0 r( d) s. R( R2 C
}5 Y2 ?" t8 e# q. h

1 ~( Z7 ?; [, \" I- GCA::CA(CA&one)
# a; e+ S5 o: C' J0 F{
( S5 `4 @; ~( p' ~7 i/ Z/ d0 w/ L6 z( }        cout<<"调用复制构造函数"<<endl;! ~# Q0 k" K6 ]& P1 e  H
        this->i=one.i;) {: D( L1 f$ |( |2 o$ z& e8 z+ r2 O
        this->j=one.j;
* h' S! o! t) V}
" [; u1 ?2 e* H8 C( u! m8 s
- Q1 H8 l( U" l' t' r8 ^2 wCA::CA(int m,int n)
7 h8 E. m+ s" a$ C0 c; [1 X2 T8 ^1 c{+ J! t- _" j" N
        i=m;
, _" I8 }7 C. X        j=n;* _/ [% i  ~: U) w4 l3 D
}; D! U# J. \! E9 s1 W. ]$ e; h& g
6 t  d( X0 }0 T" N4 g0 I
void CA::print()
2 s6 J% \( m8 y/ e% K& \1 y/ h{
  L; B# J' }* k9 L+ e        cout<<i<<endl<<j<<endl;
2 F5 c/ _' A/ A}' k& F, Z+ M" Q5 p0 Q0 l9 L; I- T

- m( G& {, k" t8 }+ C7 i! \CA::~CA()% r" a; A5 h* ^3 d: B' f
{) D  f/ |! N+ y+ N
}
- Z% F" R9 h* D5 }
" Z) O/ P$ O. A. l) ?#include <iostream>
& F3 K7 g) [8 v9 Iusing namespace std;
4 G5 f, n+ \& r% [# c  R" j#include "复制构造函数工作原理.h"
% P3 W- {5 |) g$ `int main(void){        ; ?& C7 w& u8 m( c- T, \) N. Y
CA a(2,3);        
. [4 Q  }6 {% }+ R, P0 q/ x+ Za.print();      
$ ^+ ]) Z/ V$ J" Q* m. _' v CA b(a);        + j/ l" Q" k& T) C/ \( G& r
b.print();
( E  C  J# B3 B$ q: ^6 }0 X       ' Q3 ~; e4 _/ ~3 E; @4 S3 d
return 0;
* ~4 U, F3 x( s% x8 ?) C}
: A4 f/ c) {0 p5 @9 K0 R1 `% p! `" d* c9 ^

& s( t9 W4 A4 s4 [& f' F4 h  S7 N
; d( U, n- i4 u: @  V! A. B1 Z, x2 D  q" V: u2 f& {, ]/ D
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:1 N8 k) C2 v7 [9 r
1> 初始赋值时:CA b = a;
1 ^: e. `- V1 e1 u4 h, N# h9 W2> 按值传参时:void myfun(CA ca);
  J0 r! a8 N1 V1 |3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
回复 顶 踩

使用道具 举报

 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 : |+ i! E/ f" h' \. h
复制构造函数在以下几种情况下调用:
# s7 D: ^. W" H3 d5 g1> 初始赋值时:CA b = a;6 l0 m' A& @. m
2> 按值传参时:void myfun(CA ca);
+ B5 T) W; v, U; [- p" }( z
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com
回复 顶 踩

使用道具 举报

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

GMT+8, 2026-11-4 20:03

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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