鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 0 ~9 T& t' [4 T9 S1 z

3 {8 g: U( s) hclass CA. C8 p- Z  F0 j2 Y* a
{
, i4 l* U  V# h7 }5 tpublic:
. {* x! z- W" ^) E/ _' n8 ~        CA();
  L2 S* l2 V, J$ u% h) r        CA(CA&);7 t) }  O0 [9 w+ g" @
        CA(int ,int );
1 O) K3 v% g0 H" H! z7 I5 J        ~CA();
2 s$ }3 A9 m: s! Z! y7 j        void print();
$ m& C# M; F8 J4 {+ T  B9 m* o8 V# x) A) J
private:
" P# b+ H" e1 A7 m% `  M        int i;
3 W2 z( i7 w2 S        int j;
; p$ c" z3 B. p7 n3 e* T};
* Y7 e! S* o! m& p; K0 r4 E) n1 t
1 j1 ]1 H; D- t$ Q3 lCA::CA()9 F+ x0 G& I( S2 T' c
{
: T& c, W9 W4 G( f. o}9 m# I8 a: B* {3 U, \( B
, C# p* w" ]% y
CA::CA(CA&one)
" L) z, p0 b, g+ |# f' C" X{
) C0 [  B3 U- n: h7 \4 B% ]6 d        cout<<"调用复制构造函数"<<endl;$ \1 O, Y6 l  W! E9 w7 z: U
        this->i=one.i;
' a7 I5 x+ O( |5 r        this->j=one.j;, ~/ [& Q8 y. a. T' O
}( s9 M" \* X  }( j( K
+ y) V; P! \/ G0 ^0 ?1 [4 W1 B. M1 k
CA::CA(int m,int n)$ W, T# W# W- i/ \$ {3 J% t2 c* @
{/ ~9 U" G( i* L8 N
        i=m;
- D' g9 R9 N# ?        j=n;9 U8 @" l2 k+ A. D6 _0 ^
}$ X7 I# ]4 W& L& ~$ X
9 Z* S: f1 {- C& f+ [4 D
void CA::print()& q* O+ W5 n2 \4 F+ i. b/ I4 D- u
{
" [5 L  m" z, C; y8 {* [- r        cout<<i<<endl<<j<<endl;
; c' q1 F* Q3 B2 i}3 a; x1 v- n) Q" {4 I

  I& w: t6 n+ w; MCA::~CA()
! P# Q2 z8 F/ @{
$ u3 T8 E) |1 D/ {8 X}, i& L( c! M, S4 G( c' O; N

! q* x0 _. W5 f) I: h$ L#include <iostream>
* A4 o+ a( f% R, D) Susing namespace std;9 p" C% @- Q) r% W6 T2 k
#include "复制构造函数工作原理.h"
* _+ P8 v* Y% P: Q! tint main(void){        
; Q% ]( s; e* _8 z# ACA a(2,3);        
8 n# @# Q( S2 x; Q- D9 y" D" Ta.print();         z% U  m/ p- N# O8 @
CA b(a);        + K7 D; s' s, L: c# o2 R
b.print();
0 |4 x0 f* [7 r       ; v! i9 ~9 z3 C# X7 W) {0 L+ u
return 0;
# r4 L4 g6 y2 B& L! @! I( v}# t3 N& g4 N+ C! I. g
0 S* {; J( ~* W
0 g0 L0 \( S- O; H
" [9 V) j4 \+ X

$ n7 D% T9 D9 k5 H0 e  d5 D0 q
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:2 p) Z/ n4 b( j. d
1> 初始赋值时:CA b = a;
) z+ }$ S/ ?5 \  O8 H6 x% _2> 按值传参时:void myfun(CA ca);; s2 ?1 s' H/ q+ Y% m: g
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 : j/ e; N" q7 J1 L& H, f
复制构造函数在以下几种情况下调用:
, P6 h& J' c: q3 i6 Q  u1> 初始赋值时:CA b = a;
: q3 u! b& I, r1 O9 j  O1 K2> 按值传参时:void myfun(CA ca);

4 B8 o6 R3 N7 B7 H第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-3-21 04:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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