鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 / l* E' t8 N2 k% X3 ^  s) N! i
: v  q$ X; `- n& H- L
class CA, s# t' S. m& X( `+ m8 D$ G
{
/ P% J. ?1 \- M6 q  J% Vpublic:7 N5 i" X" P2 q) [8 [
        CA();
9 H" _; O( ]; V        CA(CA&);
' X' w! t, h" }' T' [        CA(int ,int );0 ?4 ]6 Y  }: J7 H6 C4 d  u0 n
        ~CA();. n" F2 h6 B! h( Z" T, B6 }
        void print();: j& s& [- |# t

( f' X, K3 {7 `) B  D" d5 Iprivate:
( R5 c$ d+ ~/ @        int i;
6 P, t( Z$ J. S  A0 {+ G+ A& u) V        int j;9 k. n1 G1 c8 n' k, N! W" M; \
};3 s9 O/ d) O% Z8 s
) ?9 ~8 f5 d9 q4 |
CA::CA()
5 o" ?# g% c. G- U2 Y$ z0 m3 _{
) V7 u0 V) N; _$ V9 K4 c6 ?}1 A8 u: K( D. d7 L
0 V$ H/ A: B' z) E8 o
CA::CA(CA&one)
1 m& [3 j9 D! t- k  [& a{# Q7 F% s6 U5 ~
        cout<<"调用复制构造函数"<<endl;. c3 R$ C* ?7 K
        this->i=one.i;. R, ?' w+ e; `$ n% d5 J
        this->j=one.j;
/ C. v8 l! S7 o# n5 W( I}
* q+ u. O) g# F5 T
6 k* X/ n' b1 q$ ICA::CA(int m,int n)
  q3 K0 O4 ~4 ]* [{
+ v* R& I/ S4 R$ c# h) P' x        i=m;8 ?/ x$ p" v$ f0 o( _2 O
        j=n;3 g( e+ P; _  T  @' T; v) c
}
# z% v& K* M4 t) S. z! o& n. {4 S) \& n
void CA::print()
0 H! d2 y) m% e4 b, {+ \" T{( q4 n, M+ Q; {6 [0 R$ y5 J
        cout<<i<<endl<<j<<endl;
8 @  S0 s) N9 t( C3 F}
; h; z3 j7 P% X4 S( ~% D: e+ L+ p) g+ U8 @( R5 ?
CA::~CA()
4 `5 O& x6 @$ N& O$ g{+ B9 {/ p& V. u( ?- e
}
1 a5 N+ p( F1 E, h
5 p4 ^8 `+ q1 c2 h#include <iostream>
* i- H4 {$ s0 yusing namespace std;8 `  e* _2 X9 X% ]/ c' `
#include "复制构造函数工作原理.h"( I/ V7 ^* J! o
int main(void){        " u- i, h0 h: m' i# v
CA a(2,3);        
+ H! H+ P) j8 v/ k# Da.print();       - }" ^+ x! `( {! |' g" q  I2 j
CA b(a);        
3 a0 y3 @1 s6 {. [b.print();. s: r6 M# a7 R$ L! ~* Q% ~
      
  g& V  O9 g+ n1 Z8 B6 @  C: E7 m9 O) z; Z return 0;
: E. ~- _  j$ X" v" F}
# t" Q- a; V" \5 L3 j, _# x3 I% W! C3 k; v* G' Z% Z6 R
4 c) P" s* q* o4 Z4 ]$ L0 K- C" d

/ \, M$ ~! v& @; ~+ T& F6 {8 @) i# \' R5 r' e/ K3 C
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:, U3 a' P$ I; o: }* N
1> 初始赋值时:CA b = a;
* J% q6 u) x" v( q0 O, w- e- l2> 按值传参时:void myfun(CA ca);1 v' j& S: m4 @; L& }4 c
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 ) g, a9 Z& ^1 A8 f* {3 L8 `
复制构造函数在以下几种情况下调用:
0 S. \, [2 P% z4 H8 ~8 r1> 初始赋值时:CA b = a;- E: c& W1 |' B% Q# _# h
2> 按值传参时:void myfun(CA ca);

" Y2 s( o# X7 q. }) z第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-2-15 13:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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