鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 6 d8 s. E1 l) w7 Q0 R7 |
+ _# I# A* v% b& E) p2 R5 v3 k
class CA
5 f8 `, M0 h  G7 y{
% L  f" w" p. hpublic:
& k- n# _2 R, J: U( K$ k        CA();
! B3 B( c5 l* ?: W6 `+ Z        CA(CA&);) d" e1 ~7 [4 Z3 c# @# u
        CA(int ,int );# F  p( }4 Y3 ?2 t8 C) Z7 l4 K
        ~CA();: v9 P! m. I8 s
        void print();6 e% I. T- M( |4 l* ~; ^
3 K& W: P0 p) Z+ e! y& k
private:/ P6 Z0 x2 k, V! x: K
        int i;4 g' B+ {! T, J# u
        int j;# w6 t% d% h4 o) [! w$ ?( X# q) }* F& `
};
- S5 y7 R; r) k( c) m4 ^$ Z
- [3 Q8 s/ S& G; lCA::CA()
4 F2 U& u1 Z, |8 @3 e{+ J/ P9 X! Z% |, {
}
  ]6 u  a$ v. r" X3 ~6 @9 Y! o$ o3 l' W( o8 P( a( C, \+ h
CA::CA(CA&one)$ N& c5 B' j8 c# R- [( h+ L% P9 r, h
{
1 k3 e- s$ [1 `8 q3 J        cout<<"调用复制构造函数"<<endl;
8 U9 q  A4 R4 d% s2 I        this->i=one.i;
1 d3 v# Z5 X& x1 M; \4 a8 \0 y, V$ o        this->j=one.j;7 y6 D  Z. s  M+ I; V" r
}; P6 K% z7 r3 V; @5 `' \1 h5 a

" [  [4 c( r- A- x  BCA::CA(int m,int n); s" ~2 y, n$ d* K0 B# P0 M
{
$ W: I2 p0 u1 h' R. B& D        i=m;
; c# M+ H9 ^' b        j=n;$ y% @2 b. u! _+ ?: s
}
1 h+ w& `, L1 Q% F0 @2 R3 B2 `/ Z5 }  ^) M
void CA::print()
% D' H+ H5 t: X8 D3 R- k{
! f& ^. S% q- K9 f6 j        cout<<i<<endl<<j<<endl;- @% `% ^0 e) S9 H1 C1 j& J
}+ d5 G1 d% f2 ~; M2 `' q& I

! v  F6 {0 u3 F0 `7 s: a; MCA::~CA()
" v3 l$ E! E0 y! [4 k" a( t{
" S  N  Z! H; D+ o# I8 i}
8 v/ W9 W4 ]# z# y  t
; Z: C0 E8 i5 }. s7 J+ _5 @#include <iostream>3 J; `" x8 T$ q% k- O) H+ N
using namespace std;4 ~, q6 n, A/ S1 }6 t
#include "复制构造函数工作原理.h"  C3 s& {6 v' m. x9 C
int main(void){        
7 G- g- T9 M" i& {) JCA a(2,3);        
. ]7 J2 d+ z9 r2 K0 ?a.print();      
# O0 m( G: {! r% e CA b(a);        
% Q. ]* R0 [( r+ C7 Sb.print();( L. M) S0 {" z$ H+ k
       8 G& X7 }  h0 N0 u3 e' k
return 0;
  e% [+ a5 }' R( w3 O}) `" @* k# _$ ]

. ]5 p2 a; C& w% t2 U0 `5 B5 E/ W4 u' y9 ?: D9 p  _+ \
& p4 E7 E4 S; P) m

8 _* u% |# g% H2 |$ h* s
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
& }: I0 N8 q$ m7 ^1> 初始赋值时:CA b = a;
) t' x2 n" C% q- [' z' Q1 }2> 按值传参时:void myfun(CA ca);
- N, \1 o' N1 g. O' Q3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 " T  r3 ^& o2 c4 {# j% W
复制构造函数在以下几种情况下调用:
5 c9 \# F# l3 H& J1> 初始赋值时:CA b = a;. N$ Q9 u& f) {; {, L; m* w, \* P
2> 按值传参时:void myfun(CA ca);
2 p& h6 u( D; S
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-1-19 04:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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