鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
1 |3 M5 Y8 d4 m6 N9 k" R  T$ y  n: \! A) d$ b0 G) ^5 M
class CA4 J  y) z1 s" e& |
{
  n. [: p5 o) X4 [' i- {' B8 cpublic:9 l' S0 u5 q/ g% c; r6 j. [
        CA();
- R# ~; i8 L+ A' L. @+ O* r7 O        CA(CA&);6 v- A; t& S+ c, R9 d" N. s
        CA(int ,int );
1 a. o2 z  \4 g4 Q3 M: E        ~CA();
# V$ z5 t* v+ y3 [9 z        void print();
7 _" \7 \0 m* M1 f
( T) P& h+ m" ]( b* x" A5 ?private:
* Z$ A* z# L; A2 U! H9 s1 G$ {3 d8 [5 o        int i;; _( O$ D/ \  s& i
        int j;3 O. ]: A9 i- t6 i/ }( o" Z9 M8 S
};. V* Q( N; W* a! d  l2 {

- _$ A2 T6 q  R! i7 S; J0 SCA::CA()
- A5 V3 c6 `- r. x  I; k, s{4 L7 }6 m( B$ m" `9 m/ N: {3 d
}  }3 P2 F, A/ Q% _0 h1 Y" \, Q
: G; m7 j2 r* E9 B3 `
CA::CA(CA&one)
& Q) s& l- B: X4 k" G& x0 y1 n{
4 M0 q0 i. J; K, l( d& `1 V        cout<<"调用复制构造函数"<<endl;  ~/ N2 \7 w9 O$ P
        this->i=one.i;* T# F5 z. I# u9 ~# Y
        this->j=one.j;
/ g7 U5 c% @, f# B% y1 ]}
- D4 I. v! w7 `1 b/ d: N* N: Q4 A% ]8 i
CA::CA(int m,int n)
( e( W! F) e, g0 V9 N{
' @7 E9 {0 Y* ~4 F3 h        i=m;4 e! K; M( m! b
        j=n;0 y9 u9 y! d, t& K- G2 N* _
}
$ S4 ~: L  m0 |, z+ T# t; Q
+ {! G9 {; g1 X! Dvoid CA::print()
: P1 C2 p3 S5 e{! A: w* s; G3 P, T7 a
        cout<<i<<endl<<j<<endl;
: a4 O, @- a. V}* @7 ~3 u: S  W1 ]( D

9 u; U0 {* v- L- R4 ?1 ICA::~CA()( {/ T( T+ H) u, M! E. g
{: t8 o' T  h. D% F- d
}$ _- i" C! ?6 N0 a2 [
; q: l  K" `* V+ r" c
#include <iostream>- R& M2 e6 k0 o' l
using namespace std;+ S& W9 O. @! x; ]7 V8 I
#include "复制构造函数工作原理.h"
5 _$ w( `- I: _/ R# rint main(void){        
" L0 g2 w( Y4 H9 Q6 d/ I6 G: C" cCA a(2,3);        
8 z) H- X1 C1 A9 G" \a.print();       7 s# i2 _! U! m4 R# r" X
CA b(a);        7 c  {# G8 E5 f; [+ f
b.print();/ ~( K: B5 q8 D. U: L3 l
       " {4 r3 {7 d  a3 c
return 0;
+ i" h1 H! d' h, @1 _/ k}) |. @- P# O; ~+ I4 K* X0 d( k' v

0 Y2 d% S4 @' T: w7 W
. E/ `) s0 X$ s) I% |% B. y
1 z1 H4 T5 O! F4 R( X
, O* D6 v1 {4 _$ y3 L9 h8 f% |1 W
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:" g1 |; e+ H" \
1> 初始赋值时:CA b = a;
4 b" N5 ]/ V1 s  b( W2> 按值传参时:void myfun(CA ca);
6 s0 G0 H+ {" c3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 3 Y: _5 J" S- k- c' R% _
复制构造函数在以下几种情况下调用:6 t0 Q- `/ p8 h) ]( J$ m
1> 初始赋值时:CA b = a;
( |( h" {( H- K% g2 a# l2> 按值传参时:void myfun(CA ca);

/ ?  F$ y  j. _4 O% L9 @第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-7 10:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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