鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
4 E/ @' S( v; g, G8 O1 Q
( C7 _& f1 f/ Wclass CA8 Z; t3 }6 |6 `3 x" h' Q. K) h
{
& l6 B7 \( H( D) Qpublic:
6 h) K2 G9 ]" C( g0 H4 K6 R        CA();- g5 c' {# h8 M* c( l, S0 ]
        CA(CA&);  s2 P& i) T" |* W& f
        CA(int ,int );
/ c* H( F: X/ D' W& I% i, D( m        ~CA();
/ z" ?! m, Z9 y3 y8 @        void print();
( D! [( r( ?0 }' B7 U# W% g8 e3 R. Z3 r% `& S% r
private:
5 e- Z& H5 \& P        int i;0 V1 q. M* X: Q
        int j;: d* a& p  s& ^% b; |8 u
};, _0 l, B: M5 ]/ @

/ q: L4 |( `: N# C( oCA::CA()+ r6 Y- `7 K! q) a! O4 |- X9 B7 P
{
9 z1 q3 |, ^, E1 @7 }' {" B}
7 r0 [3 l2 T3 p8 K9 ?) K" q3 G  p  L
8 @4 g3 D# o0 N, x3 aCA::CA(CA&one)3 \: R) S4 A, o; @: |0 W
{
: X- j1 U/ m) A        cout<<"调用复制构造函数"<<endl;
* _4 {- l7 D; b) b) k3 p' ~' H        this->i=one.i;4 {9 ~9 k" {' Z2 I  C! \
        this->j=one.j;4 o$ M: p& p2 F( A8 [7 ?
}
" {: p- @5 M3 S: }8 r6 [6 L7 w2 A4 [  p. F/ [$ M. }$ {  y
CA::CA(int m,int n)3 X5 Y: Z2 s  W/ s$ [  t. }
{
3 e: |) V# ]7 Z8 h. a* G* O) v! e        i=m;0 B0 Z4 Z0 w# D, V& q8 x2 K( v
        j=n;
1 ^! g/ w8 g" \/ |' O) _* w5 y}' ]) f) U& |6 v2 ]
( c" q% \$ N8 `: W* `- E* F
void CA::print()
* S7 z/ D6 B4 A, y{, K* k% M% v' `' g! \! c
        cout<<i<<endl<<j<<endl;1 D$ C$ W" Q* {! Q
}
  A- U6 @# d' |; f! h9 J
4 o) s$ S  Y* N) X1 v- j7 XCA::~CA()
4 r1 m/ E6 u9 F9 b. r3 z' S{6 o8 s$ Y( x9 Q" }! C4 x( j
}
9 K1 B( u0 H' w8 s. v( V3 P! k( S! |, W* U9 D2 O. n
#include <iostream>
! U1 @! ~* n9 @+ Musing namespace std;
8 W- t- o5 v! g#include "复制构造函数工作原理.h", A5 D) g4 ]% O' E: P2 E
int main(void){        
+ p$ H; |" M0 L- sCA a(2,3);        0 t5 ?! l. E$ Z* I0 T
a.print();      
; ^% l7 e1 H1 W3 D+ E CA b(a);        
4 P: ~" g. F8 ^( Ab.print();
/ P8 _2 U; v* O7 m3 x, R9 a      
% Q. Y4 u  C2 H; {4 W  q" o return 0;' {; r3 W3 u, b
}* E$ F8 S+ b( G! p2 Y! G  `; t
; \* c0 s3 n! K" y5 H

- _  L7 \- _) c- f( m- b) k
+ y8 [) f2 @& @! ~# T3 V
3 y% G2 x% i2 Y( S
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
. S% c, X" p/ X( g, y1> 初始赋值时:CA b = a;5 i6 \; ?, r' I9 \
2> 按值传参时:void myfun(CA ca);
: B0 V$ X/ D! V3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
( K7 Q. w3 `! H5 V3 ~4 l
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-7 03:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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