鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
2 F) ^, b& K" B' U4 A) w
' Q9 {. a. J- }1 p( Lclass CA
# f+ w9 s6 k+ `/ ^6 P{4 g5 F! T; M1 N7 U  L
public:: r0 g* L9 _7 {: g& i' b! s
        CA();' t* D  S$ D" a: B* R+ N+ v; T6 y
        CA(CA&);
$ n6 f  z3 T: U# G! w& Z        CA(int ,int );; r* ]* c+ ^( {7 n
        ~CA();  y+ n2 o0 f1 C
        void print();! u; U. o. c4 p  C4 J" q9 P4 {
5 A# C' Y4 c8 E5 I
private:! d& _" c; q3 X, Q5 d5 k+ m: S
        int i;
- y' R  D4 G9 f" C* f2 n' c- z6 j        int j;  g9 v' c3 n( g5 l. V. p7 _. z
};. [$ g4 y& F# X; P7 T* t8 p$ i

8 g* v. h) I" D4 A- {1 S- vCA::CA()  B  Z! P5 R( f  S$ {3 R, q+ U5 }
{
8 ~. H3 E& F$ w, s; |+ P}
# E) V7 U  g3 ?0 s) ]( `- ~) |# T, i& F: W8 b4 @4 y( l
CA::CA(CA&one)9 C1 \; a; J- J5 w6 v$ B
{
. L  H' ?! c9 B- C( W: L) g. N( c        cout<<"调用复制构造函数"<<endl;: a: P' E* M, w; N
        this->i=one.i;
% q4 l' K0 O+ d- |+ A2 t% H0 a        this->j=one.j;
% R- f; Z: I# Q9 [1 n* r* r! u6 N}
, h3 @3 i4 X) X
4 B0 ?7 s6 J  e' ^3 n; ]' oCA::CA(int m,int n)- u9 ^1 Q# Z& v/ m, T
{
' {7 [+ ~- T8 g# q' f        i=m;$ w+ Z; p! ]; T6 U9 w/ \
        j=n;: |( @" q: B: `3 `
}% X: s4 _' P$ G* Q; V" N4 R

6 N1 h3 M! S  ~1 Uvoid CA::print()
/ L; \" \$ f/ Y) A6 m{/ V9 H/ G4 S* P, _; m
        cout<<i<<endl<<j<<endl;
3 y- M- n3 v3 k/ ?* B* n) J}' M, U7 z! g) ~8 q" L7 U

4 K+ h8 p, k; |2 c: i! e( OCA::~CA()  ~. x/ y  C5 K3 B1 B
{. J! B0 d  o6 z6 ^# u; Q
}1 x7 ]8 c( T% V* z% d& M) D- J$ g

9 R) s9 p1 ?6 Y#include <iostream>4 F6 ?+ z7 d3 s8 p8 V; o
using namespace std;
7 n! q! h5 l  n7 n; y- l% b# j#include "复制构造函数工作原理.h"
2 E1 i) F0 X8 {$ W2 A- t) Jint main(void){        
, J+ ^7 ~  n. z& ICA a(2,3);        
. e5 k* x0 z4 x& J' t$ n1 k5 xa.print();      
1 E3 h/ s' U& ?) {3 [ CA b(a);        # Q% a1 ~' @8 m5 {; W$ o) e$ w
b.print();, }( N* E  X+ B0 W
      
, Z% P, C7 a# Q$ A return 0;
# N% A+ F- m8 G& W9 T  y6 \}: [. q2 K# b  |- {# M
! }( L- w$ |) `1 ^& B

" Y$ J# p' \5 U/ U1 s/ s
. r6 ^& Y/ F5 `( r; m) ^3 _* L% u: Z% _- _: j$ ^
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:2 E2 a$ K! i8 u# i! i5 _; v2 B
1> 初始赋值时:CA b = a;
3 ~% ~7 U4 Z- s- i2> 按值传参时:void myfun(CA ca);
+ D# n: n% B0 t' D3 h4 z, W3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18
' G2 u1 [3 U; M+ d8 O: {% |! H, w复制构造函数在以下几种情况下调用:% L1 P9 _2 O$ o' F4 s
1> 初始赋值时:CA b = a;3 ?4 F- E2 H9 W
2> 按值传参时:void myfun(CA ca);
- S3 Q& {6 L. z: b: o
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-3-13 09:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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