鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
: m7 }( p* E4 @1 Z3 ]& p/ @/ j3 {( Q7 j1 e5 Z7 H( R5 D4 Z
class CA) V) Q& M4 r5 d/ C# Z
{
' r) c! |, K% j) B+ G" I  \, \4 M3 rpublic:+ `3 C* w- _) k4 k3 R6 T5 x
        CA();% f$ j: U" ?. M
        CA(CA&);; G0 u7 R$ o# u! ]
        CA(int ,int );' f: {/ J3 l) N2 b
        ~CA();% J2 R, X$ g. J" \! N& D0 h
        void print();' G2 h1 [# D. }7 Y+ o/ ?

7 y9 n% T% o; Q4 i& Sprivate:& D4 E9 ^& V8 K( W) c* h4 @$ c' H/ s
        int i;0 \. W4 x# Z. v( ^) x
        int j;4 \( D) \1 `0 ?; g3 L
};
  T& a$ R  D9 Y& A0 ]( V* k+ p& x7 q3 P; h% L. x6 v7 E% I  x
CA::CA()2 U+ I$ m* c7 B0 t; e
{# r0 q) Z( u+ h
}
* k4 K4 Y& V( t* S9 V  \/ h% W
2 l7 B7 _. W% n8 U& P! mCA::CA(CA&one)
# v) l$ W8 M" W{. D: Y& }8 b, J3 W" D5 H& w
        cout<<"调用复制构造函数"<<endl;
; n) K! h5 N# G' U        this->i=one.i;
: p* K4 ^& r1 X- E1 O        this->j=one.j;" I+ A% z& p3 n
}9 K; t8 {1 N( \( L7 O5 |

( ?6 o# [, V$ G. \; E" dCA::CA(int m,int n), G* p4 O# e7 S. o3 ]% Y: d3 ?
{. Z( b% F/ O" R3 x
        i=m;
( K3 z2 T# e+ Q1 s. u( g& u/ Z% N        j=n;6 B% u. h( l4 V" K: ]
}5 G% F; y/ e; B, X
# [9 C' L# b+ @* v' Z
void CA::print()& E$ o4 A, G3 \, s, J  [& L" [
{5 S/ g+ B# I6 A8 @4 W, U2 A" s
        cout<<i<<endl<<j<<endl;- v" P; A' C2 R- N/ d! n# y$ P$ H
}; S9 X: E+ n' l
4 u8 T; x& ?; j, n
CA::~CA()) f; p3 L/ {- s, M
{# V7 \/ x$ A& Z( m. W6 V
}
: u3 T: i3 c' G& s, S9 n& z& J/ O$ j! m* Z$ h: K
#include <iostream>1 T, D$ i5 L% H5 t% D. {5 q' c
using namespace std;/ ?3 {, P7 k4 U6 E, e* S  a
#include "复制构造函数工作原理.h"
! d" L- x- D( ?: J( }int main(void){        5 J' i& C) s3 ^/ i* M
CA a(2,3);        
7 |3 z7 `4 p9 R% X9 l& Y8 Sa.print();       9 \: Y: u" E6 J0 I" L2 S
CA b(a);        5 g) _6 w0 a0 h# p  Z. M; W( Z
b.print();! V9 \# e6 P4 M( I0 h" J
      
  ]2 v2 C; h, V2 K$ P3 c return 0;
% S/ [) |4 N' j}, z8 V" u" P& N! k- N0 `5 J" h

2 Z( Z- ]) R% E
, w9 X/ s+ V& [) j, L- o. ?; I3 h" p
! k+ z+ S* c( u& l! F
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
( p' I# d# ^5 _. Q3 F1> 初始赋值时:CA b = a;( E5 p! R; D+ I! f+ I
2> 按值传参时:void myfun(CA ca);; d4 N# R7 Y, Q9 l
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18
: E/ {6 Z7 H" `( n% Q复制构造函数在以下几种情况下调用:
, r# F7 G2 w+ Z% y2 M+ v1> 初始赋值时:CA b = a;: `! W8 B9 q2 J+ p; L
2> 按值传参时:void myfun(CA ca);

+ L1 j  c: g7 @9 H- |第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-27 01:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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