鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
* w; _2 Y3 V- Y" d
, }/ D7 y9 ^/ e) C% P7 ~class CA
0 ^& D7 |2 E1 B{1 Z# [2 e+ C) u5 q! N
public:/ g4 L2 N5 v$ e, \  W
        CA();
+ t9 k. v  K, |* V* M4 s7 P) v: k7 n        CA(CA&);
% y/ I9 L) v: A        CA(int ,int );
  A7 P: x0 K* q1 I7 N        ~CA();
. l  g/ T- @$ j5 A        void print();
$ ^( l5 }5 A+ F: f2 _* U  p# O/ ^2 b
private:
- |: Y! U" H$ @$ K2 f/ I        int i;
4 }! c; D) P* q        int j;
; `& |- a! @. S0 m: Z2 @7 |};+ L. c( l/ f! E9 Q1 c9 O, \' [
/ Z5 \# q' o( X- S
CA::CA()
/ P4 {3 P  p7 o( ]# o# Z{
1 v; y/ ]" j( N  c: }, u+ f}6 B$ b' E9 z7 P- `0 a

0 b  w/ P) C. u0 ~CA::CA(CA&one)
5 f- M' K8 W4 _$ D{
% a8 z$ E# J% `5 _        cout<<"调用复制构造函数"<<endl;
8 z2 x& K3 e( v2 C, s. h        this->i=one.i;. Y% H+ L8 h' l8 h; H
        this->j=one.j;# f9 a* I6 `, C
}$ ~/ X0 X: O9 W) q7 \+ W

4 u% r; c9 A/ s# ]5 GCA::CA(int m,int n)
( a& O" i% I% m0 a7 I, m{  N: B; @! {) j3 b; e1 M
        i=m;
# t1 e- H9 z8 {* [9 i0 g        j=n;
# C& [1 F( ~) r' ?0 O}
8 n, \/ ]3 R9 U5 F+ p' S1 L  o  C+ d% T" z" w! X
void CA::print()% \" z' s2 n' G4 }7 ]3 K$ O
{
! X' B' w& s5 [' h2 {0 J3 |: w' |        cout<<i<<endl<<j<<endl;, S! c. R6 {, \) m8 B, p# W
}  M8 O7 J' j& p5 a
% I  p8 E& i0 g  X' i& i; l
CA::~CA()5 ]& q8 I( H9 S& h" \
{
) w: {5 B6 w% p}
) E" `& ~6 |3 b; W, U7 z4 G8 [
9 I& f" ^; g+ |( B! L#include <iostream>
9 ~, G0 U0 C& ^4 Musing namespace std;
. c! O4 q  Q: B0 j1 G#include "复制构造函数工作原理.h"
4 x: K+ U/ y5 M$ l" J2 r% hint main(void){        
8 K' L, d  w# QCA a(2,3);        
2 y2 Q, _7 k1 q6 w) ?a.print();      
7 \( B3 P( P, R. [) z CA b(a);        - i! v0 Z1 [2 e
b.print();
  |; n8 ?) G8 }6 k) @' P2 c0 M      
: @) l4 m8 A# J; `4 x! u return 0;" ~' M7 P  B: B3 G% L
}
; B4 V, B5 h  J6 G6 z4 h
. P( r) |' k$ N5 a4 [
0 n  r" q$ a5 H( u  g
% [0 M; t4 N+ t) ~/ U& U4 N. u
4 @* \) _9 s: d5 z+ {
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:0 |( A' i# m: F/ k* s8 C( t2 _
1> 初始赋值时:CA b = a;
1 l  r1 U' R. X; z2> 按值传参时:void myfun(CA ca);
; R4 E. q' M4 D; L3 o. U$ x5 \3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 ( I. K' L9 x+ B' Q# M
复制构造函数在以下几种情况下调用:
( {% g) i1 M4 S# S/ s8 t) ]7 K1> 初始赋值时:CA b = a;4 |& |" r' }& W2 S9 |
2> 按值传参时:void myfun(CA ca);

. x+ `9 D  Z5 p; a& S' I! M第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-14 08:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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