鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
2 m5 G1 l4 s+ v* g- _7 x* t# H1 ]( N$ V8 R$ J0 W5 p
class CA. O* X) R4 ?* L; J: F
{
% h! M- u# m/ @2 ?: `public:% I8 a' `$ w8 o% i$ |% P
        CA();0 P& z  O, I! {* y0 d
        CA(CA&);* m9 S" M+ i: R+ p6 T1 W& l
        CA(int ,int );$ o; I+ T  f9 a$ q
        ~CA();
  o& Y. n$ E) e/ [/ H) @) H        void print();6 o0 h3 M) {1 [- X7 U# s

0 _1 Y% w% Q& t7 `" v) V( ~( \private:; Y/ U2 p0 ]' ~+ a" L7 u5 ~% T. h! Y* R
        int i;
& I7 K2 w2 M& u  C5 M        int j;
; Q; W/ v( t' y( a# R: S1 i};
4 m: x, s% G/ M+ c# k  P# P  t
& \3 a) }- b3 h1 rCA::CA()
, Z8 J4 O( X& B1 i7 s9 m{% v* e1 P! O* l/ G8 N
}5 D( Q0 N# K. u$ E/ y
6 U" a/ w  G+ b
CA::CA(CA&one)5 R1 O6 A8 M  C5 }# l" C
{
5 L+ b& V, G" ]# Y        cout<<"调用复制构造函数"<<endl;- J0 I+ K, [- P$ J- g& }# l3 \5 |
        this->i=one.i;
. t0 A1 m% l; X  d( z        this->j=one.j;2 C/ E. ^1 C7 `
}/ _7 A( J' i3 v2 n4 X  C' E  _
* L' V. |: n" L4 S5 j+ Y2 U- ~
CA::CA(int m,int n); Q: z8 s5 M' W* R1 K' t
{
) E: V  Y: U& X% ]1 H        i=m;
, O5 U6 x8 ]/ O+ @4 w        j=n;
: D2 p$ A, \: U8 Y; X}
7 v  c) E; |3 S' W, \5 a9 O8 A: w( I8 R
void CA::print(): }0 K( G% }* P/ X  }9 J
{# u5 O' ^: \9 H+ n7 T4 _
        cout<<i<<endl<<j<<endl;. h0 J, X9 Y! X/ }' Z2 b
}' B) h! M; k; K& ~6 |

4 M# t$ _* h! K7 f' N0 b& I9 ACA::~CA()0 t. o0 Q5 Z# O: ~
{
  Y: n0 k# B+ p5 L1 L3 P}9 |& Y9 d+ M; ^% _1 D1 s
8 J( t. E. D6 A1 A4 F7 @. I
#include <iostream>
: [1 H- |5 ?* K3 x, o2 V3 @using namespace std;' R! D! @& d; T1 F5 r
#include "复制构造函数工作原理.h"
" j1 e- x  u: y1 uint main(void){        ) [$ I7 a( t( J
CA a(2,3);        - z8 w) x* {) |# g& ~# e
a.print();       + n) T" j. X7 f/ h* k3 T. {( \
CA b(a);        2 }& V1 e1 S. V+ M- R
b.print();
2 T" I/ U8 _! w      
9 m; B' h. [* j return 0;
. c, b) _" u& e$ F3 i8 w0 G}
2 c% J0 ^2 j  {# U" R
0 L. ^' O# K: k- U8 B% k! k! T+ Z  v# g$ Q
, h2 \4 }. D5 j7 ^$ R% w
* V  M4 q- I7 h" }4 q% h3 R9 Z& h
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
. c6 f, G4 h+ i  z1> 初始赋值时:CA b = a;; M1 B, w& j* B' e, h# i/ T
2> 按值传参时:void myfun(CA ca);6 ?( l5 P! q* V, F0 D
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
" U7 T/ q1 R; ]4 ^0 m5 ^
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-1-24 18:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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