鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
) A4 M6 @6 G0 r# w
) `* f4 d7 A! {9 q& _class CA, C, I( w+ v% j0 [- k2 ?7 l
{
& I- O2 ]+ Q4 d- ^: o' [) C% opublic:
- Z7 T8 q$ ?& `5 `        CA();. s7 {) u! q4 Z
        CA(CA&);
" k# w2 I) ?2 _% `  C        CA(int ,int );, c# c' ~1 N/ U8 T5 V( b) Z
        ~CA();. G0 H7 i, M  A+ f
        void print();
. A7 k5 n! u: K' o# Z2 q* {* Z5 j0 N9 p. l- q" l
private:
5 m% h5 K, a9 G; o, K! i+ k        int i;/ a" Q1 m$ X/ d5 w
        int j;$ E  r: N5 i/ _# K+ _: \4 Z
};
* ~2 Z  k3 u1 A1 f, ?! y3 A
+ `! W( U0 c$ R: g0 I0 e* S% g8 HCA::CA()4 _2 g! k' d5 H" `/ T6 i* @
{2 O" N- F' I6 u* Y
}) W) d$ x+ [8 [2 b0 e6 J

7 x3 K' I3 d- s6 o* U5 UCA::CA(CA&one)* \/ N' O. m9 V3 j
{
  K2 ]4 N3 y- M: ~        cout<<"调用复制构造函数"<<endl;! A" R  @5 C) o& y
        this->i=one.i;6 F9 X9 U4 W" _6 v& H
        this->j=one.j;9 k/ l& Q, ]8 ~9 b
}8 W/ {% f. n3 P, o

2 r7 Z7 |! O/ k8 r$ I, VCA::CA(int m,int n): C4 T$ B% w0 Z/ o5 ?
{' I& t, v2 w, K; n# e, Z6 v
        i=m;2 f4 g' Y0 ~0 F* J8 P
        j=n;
4 Z5 J  m; C) ]! x0 o5 s}
$ Z; t- ~7 m6 n6 e& c
. V6 F# F& S+ S7 s+ @void CA::print()
* z; h. [. e5 n0 U5 ]6 a: s{/ ^& H9 {# M# d! T1 Z
        cout<<i<<endl<<j<<endl;3 d0 L! }0 Z! h, v& |
}
6 q9 Y2 J% _$ Z& Y( b% v! `
  \: y0 G- s* E  R& g9 v* eCA::~CA()
/ {# O7 C6 X/ l! c- Y# z" z{" w; U8 |6 m) Z5 F( c: W5 P  W
}3 N; I) A/ y: h$ [/ ?

' [9 ^5 m5 M' E- \' Q  l. R/ n#include <iostream>) e2 W& D$ w3 r, X
using namespace std;
8 E. ~1 g- u% j& c- \#include "复制构造函数工作原理.h"
5 l& M1 N+ B9 r) x# F2 ^int main(void){        . f  _" k! Z' ?& z4 A# T3 p" W/ l
CA a(2,3);        
; a1 Z' K: }9 C! f% g# h* l$ z' Ca.print();      
: L/ u3 D5 \% X CA b(a);        
* _2 ^; m2 L* o6 @b.print();4 `: y; O9 Y; [( e" k( v
       + x/ Y% ~  ~2 u, i, {( }
return 0;0 h+ |+ w" {$ g1 G! e
}
& X+ T7 o, k. @6 m0 l3 V9 P; J" C% C+ y, s  f
; Y! Z% L0 q( o8 C2 R' b

" {+ j  o4 o3 a+ a& y* x8 `$ d& c0 A- ~4 P9 u* ~  w! _
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:, N6 n( A3 {& D" [7 Q# ]8 v: Q
1> 初始赋值时:CA b = a;
8 V* y# f7 Z% b& D, V  l5 g2> 按值传参时:void myfun(CA ca);
7 W7 z: V7 L% e8 p3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 & |% X* m$ r' Z2 ?7 V5 e- ~
复制构造函数在以下几种情况下调用:
0 M0 }7 k7 L; P2 L, ~0 j' S1> 初始赋值时:CA b = a;
* L9 ^5 [+ }' o" h2> 按值传参时:void myfun(CA ca);

1 B& |4 d5 S8 C: a! @& C9 P第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-2-14 11:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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