鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
! d8 Q0 b' O+ A' ~. }' X+ U/ P( A
. I' d( S' A1 U  z6 I# dclass CA! E8 L# G9 Z* T; ?+ n* v5 @8 j" X
{
( W/ m) s6 n$ Y: w! wpublic:# H9 X7 B/ {! E
        CA();4 b  ~5 n& A' S% i" i; d. C
        CA(CA&);+ T' B* @; a, G8 F6 W# W
        CA(int ,int );
( d! p0 V2 ~# a1 R- C5 S5 m. F9 d& |        ~CA();7 A' D: Q9 d  Z. M0 F. o1 z4 W
        void print();
; v5 {6 j1 c$ I" e$ T( c. }" z) n1 o6 k2 C/ X  A! |
private:7 b. a' F; w3 I/ G, }9 k
        int i;/ V# S# L) j! Z8 _" t
        int j;
' ~! G- y1 q9 Z4 h8 i( @};
2 c- \% e/ `0 d3 p! G; \$ O
' U  W. L+ H8 L0 e/ R- l% w+ VCA::CA()
5 {& H. ?4 \% Q! H0 P* ~! h{
/ j  X5 [6 _& X}/ I8 _% I% y- O& z7 L

( ^' r7 |$ h* {6 ICA::CA(CA&one): H; l! x* c/ b3 Z
{
1 X2 n" a! ?5 c$ A' H        cout<<"调用复制构造函数"<<endl;7 b0 K4 t% l3 X( _1 ]& c# p% P6 X6 [
        this->i=one.i;# C  }4 y4 B8 `, M' f/ B$ t- H
        this->j=one.j;
( z- C, u) G+ u7 b0 f}1 ~4 n) t  R( C. ?

/ W  Q# M& s3 w/ CCA::CA(int m,int n)
% G9 f$ P! }' @6 \, B{8 K0 d' R0 X. Q% H* N
        i=m;
3 ]& y; N, ]+ i2 @" X        j=n;: N6 X' t  O$ P) C5 C) O2 i
}
1 o& D5 S" N$ r5 [) {# D( P$ H- s! ^; @1 L% C" D0 Y' v
void CA::print(), |; k) @5 I- M( V7 p0 `6 j" T1 v  F
{. p- l( w6 v6 j" l, K* w! T
        cout<<i<<endl<<j<<endl;1 I, M0 t% k) b2 I) A6 T, Z
}) a  v4 Q# L! e6 g) r6 w, A8 K

  u! y9 o$ s* V" S$ ZCA::~CA()
9 U$ r4 ^) y) B' e{
, @" J: ~, Y) o" N6 r4 b) Z: j5 l8 ~4 N}% ~3 \8 D6 T  E2 Z3 F6 p1 y
& ]1 W% @& G* x$ d9 I7 T8 ~; c: H
#include <iostream>
! f- X+ j+ l: l4 a) a$ J/ T$ \using namespace std;& B' _+ U. y% `* z9 c( G
#include "复制构造函数工作原理.h"  L$ ^" Q4 }- j6 K. E  H' u
int main(void){        - V/ z  _; y/ Q9 j! i; @
CA a(2,3);        
4 u; x& q6 H  H, da.print();      
) J9 V& `" W$ p2 w: e4 G CA b(a);        
& n5 {+ N8 H7 ~! e0 A* [, M% |b.print();
+ r6 l' o2 U+ q$ a       . t* \% g8 l/ W- ?& W3 q/ F5 b  d
return 0;; X8 E; Y) B$ _
}
! {/ @8 R! E$ g) K8 Q9 D
0 \5 U4 |' F. x
# c; ]2 d  n$ X2 S& X# }
" N0 u  M/ S0 H1 [& E
( _$ ~1 u9 y' }! ^# [4 R2 t
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:- ]0 g$ q3 _6 J+ i% ?) n
1> 初始赋值时:CA b = a;0 ?* |! `, {3 b* i: o
2> 按值传参时:void myfun(CA ca);
% Q) Y! }+ U! O/ n) L3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
  T- l+ L# f- Y! o. u0 I
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-1-18 01:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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