鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
; d) x9 @/ u  @4 `9 x& a
# w: o; W4 F3 [1 i, n, m( b% x- dclass CA
+ F+ l8 F5 r9 O9 ]5 R* u{" Y* T, w5 A: ?4 }
public:
8 x& w1 {, F; `7 i3 a        CA();% }& y( ~' a& k0 m- }* l9 {; S/ u
        CA(CA&);
+ H4 N8 E; R  d) V. [        CA(int ,int );
1 \7 B+ T4 |8 L        ~CA();
# {) s2 h# p: K+ z6 B        void print();8 D+ X( @. G  s( z+ M7 r8 f

3 D0 U& q0 B# d+ H( vprivate:6 q; \+ N- x0 S' y
        int i;
, D4 q9 ^' ]; ]1 X6 K5 _) v. I        int j;
; u/ P5 j4 S, F4 ^# [};. }; K) V4 O' R( r9 x2 Z) |; U

! k% W, r& l, V: UCA::CA()
0 {& @; q  r( [# `; x# E{, h. ^3 e; @4 q) _9 J
}. b% o4 S  K: N' F7 \" i( k  J/ B

6 O( u, L5 [6 {5 Y9 VCA::CA(CA&one)
8 c2 o( d/ i1 R{
, e  S8 c2 f( A5 a- r- J8 R2 V( X        cout<<"调用复制构造函数"<<endl;$ M6 g  A# T6 `% @' u
        this->i=one.i;
" w& p3 t4 j" v2 O' ]9 g        this->j=one.j;
% a6 n" ^7 M0 l5 z, t$ Z- f}
& g; X7 u5 O' ^/ j* z8 {6 _  H3 U, U3 I# F3 A" W
CA::CA(int m,int n)
1 f# o3 g: w% q2 B* i: R{
: V' a8 ~" g/ q. ^9 V: @+ k* l        i=m;3 K9 V3 I  _, S
        j=n;3 C0 }' d. X' d$ A9 E; f
}
) ?# R9 O; G/ \$ k% g) w/ _) }: }  r# k. [
void CA::print()% w. w$ _" N$ Z
{5 I. s  V) h+ q1 I
        cout<<i<<endl<<j<<endl;
' v1 ?; Q( L2 Z' r2 `8 n' ~}
0 l! Y! v6 Z9 @) r' A! f' K: X
& J. T( c& d. D7 UCA::~CA(); j6 B2 R4 _* d. `. C, y3 W
{
  d3 }' c3 l, ~; [$ l8 m}
( n9 k. w9 m* y) f- X( G, }7 d
+ z5 ^2 t* o8 u4 p9 c+ `' `! C#include <iostream>
0 D- Z% G$ w8 wusing namespace std;
- k. }0 }, @; q9 V4 |2 ?5 ~- f#include "复制构造函数工作原理.h"' t' d* ^8 ^# i, K# A4 Z- x( j3 {
int main(void){        
- x. |* S0 A& n8 X( k4 @0 w1 aCA a(2,3);        9 ^7 k0 Q3 G% p8 l4 r
a.print();      
' P9 Y- }* g" P9 w5 g# e CA b(a);        8 Z9 x, A0 f0 g* [
b.print();. a3 R& i% N/ J$ w; n6 E
       . y+ T" @# T$ y  L+ X' [- `6 ^
return 0;0 d2 I  ^( y+ U  l5 U+ E/ Y0 s8 K) r
}9 Y' S. X, }" U; w
2 ]0 S" r0 H3 C, @" D6 t: w
2 i( t/ R/ S0 g2 P1 W

) ]' O& \9 k% I7 _; u) O5 H
( q' R0 R  |% e, F/ H
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:5 c5 Y) m7 `. W$ A2 u/ w, S
1> 初始赋值时:CA b = a;
) f+ _: z. r. ?- R6 d8 X1 q2> 按值传参时:void myfun(CA ca);
  |( X& {* c5 g3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 6 Q$ E' }# j$ d; A6 R
复制构造函数在以下几种情况下调用:% W$ ^; c  \/ _& a# D8 q# h  o
1> 初始赋值时:CA b = a;2 n+ U4 i, x8 p3 W7 D9 |$ n' U" E
2> 按值传参时:void myfun(CA ca);

  h! Q- Q) K0 G第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-2-7 07:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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