鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 / {) J( C  I# g% j8 \6 F

9 s% R; N" Y  ]- u" hclass CA- P) N  ?  H! c
{
8 x8 W4 M3 |$ Q7 ~4 Zpublic:
( G- ~; h# ^0 H4 [        CA();! J; |6 j; c. m: F  L- k% L
        CA(CA&);3 j2 p5 X' d8 O, C% v  K" `
        CA(int ,int );
* V% D2 T0 ~: s; c( l) v5 [        ~CA();0 b% ^$ Z% P5 D0 |3 X+ e
        void print();
9 i# p* p; ?* {7 ^4 ]  _9 \; s0 i  h/ G3 ]: V
private:( {* [6 W8 r% c/ Z1 H
        int i;
+ q: q2 k. n6 Y$ \* e2 ]: z        int j;
9 o  v( @& Y3 n8 G0 y. E! v, W};
. B7 S# a# f3 S0 j) |% x4 p: }' }1 {* b& z5 O9 w: Y
CA::CA()
! ]' Q) p2 _* f/ I7 g7 |{5 E  a; U- X8 O  F7 L# w& h% D
}
6 f$ y+ l6 R( R: Y/ @& E" g8 T! ~4 n8 J, T! y9 \+ R
CA::CA(CA&one). l- h" {- r! t
{  |) a- c, x* C5 M9 Z. x3 w% E6 E
        cout<<"调用复制构造函数"<<endl;- `3 \" ?# @( \3 h6 a( X# K  ^
        this->i=one.i;
0 N0 V) [7 l, u0 K* j4 T        this->j=one.j;
$ X5 r# y9 ]4 [4 q; R2 V}
. H( z: x% b+ b8 D" Z2 S( h+ V: _# C1 _
CA::CA(int m,int n)
, T! ~0 O; a6 z6 [% z0 ]{
: Y+ S' m+ e! |  }7 ^        i=m;( y5 T2 u* G3 p! ?9 W
        j=n;, q- V- v3 N* ^( y" A. s# w. Q
}: F* o$ F, [  [5 A* y& Q- @

; C$ q" \! C0 o& b/ P+ Zvoid CA::print()/ B8 L5 R1 r8 G7 e9 w
{
  \3 _/ M$ M" \: f, z; _, n# o        cout<<i<<endl<<j<<endl;
0 B/ I/ y) o( R1 }* `+ ]  f" J) O}
3 h! ?- ]2 u# g. `9 w, Q1 U
: }7 x  ^% U# v8 X' H5 cCA::~CA()/ J  Z& A# b. L  {
{! {3 h2 x0 @3 E+ l# _
}
" Q+ O! d9 X+ o/ \4 Z3 j2 V* |. _6 D+ l* `
#include <iostream>$ A. S% @' t- a0 {; w4 w
using namespace std;
0 f5 j6 C" G# c/ e7 s6 [) E#include "复制构造函数工作原理.h"
# ~3 [& N+ m" z! `" dint main(void){        
2 a2 u# X7 ^+ Z2 W& r$ }CA a(2,3);        ! A. T* b  G6 i
a.print();      
5 h& ~3 N* I" S/ X4 _  e4 F; g CA b(a);        & L. K9 w+ M: }, W# \, @3 p
b.print();8 p0 s1 M/ Q* _
       ' V7 h7 e, A/ ~" ?- A) \
return 0;
% j- \! x( d- p+ O/ p' i}
2 t- f: w+ `+ L! `- [7 W# ?
) @$ I. ]9 q5 i+ u/ [3 w! D4 g$ E) [- \
4 `& B( R& R2 i# M! n

1 O. Z: U( U' j0 S* S5 m
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
' x. T8 N7 J! A8 M; P1> 初始赋值时:CA b = a;  R- n! W; r" H/ l. i' ]2 }
2> 按值传参时:void myfun(CA ca);
# n) i6 k' d9 v; H1 _0 m3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层

- A. \5 A; x1 g8 K. S第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-2-24 04:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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