鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 6 n) ~! d8 o# H5 M8 O

2 d! }5 g$ O1 y7 L- s: aclass CA$ q1 o) ^' P" x/ I7 ~
{
( v" j) L  a6 z' h7 J4 \public:
4 j8 r. W; b: s7 x) `  \        CA();
0 E. R- N7 Z9 m' B1 _% v2 V        CA(CA&);
6 D9 _/ j; y: ~, A        CA(int ,int );
1 V! T* ^  V- @9 H( Q        ~CA();
& O4 U" b. e3 n7 G# w        void print();( }3 o: {. q: o# w' q) v0 X
7 I) }4 Q5 i3 O$ v7 `8 s
private:; o7 P1 A6 u/ v! m2 L' F
        int i;
& b3 ]) `/ ~2 q& L        int j;
. P- D1 @; W1 Z5 s6 x& G  I" l};
* Z$ Z- ~5 p1 X2 r5 ]- V1 U& d
6 t# P. c) Z- K# `2 I' i: ^CA::CA()/ e" h/ \# {4 ~* Y! J# M
{
- @3 ~) S4 u2 b8 {1 }$ }}
2 ]% \% B+ V; q# |. A9 z) W( S% L* j) s0 ~& W: A
CA::CA(CA&one)$ V$ h9 u+ s% U: t. S: w' w
{
9 D1 Y4 `4 j. g& Y4 Q. W        cout<<"调用复制构造函数"<<endl;: r8 Z% D& D4 `' w6 ~4 H
        this->i=one.i;
+ q8 F! S5 u/ x2 l! L7 ~- Y; c' T" h        this->j=one.j;
/ [% V. k  n" {  \5 l}
% O! S0 n6 ]: X6 ~- ~( m' h% Y: ?" I6 E, T- E8 B0 }
CA::CA(int m,int n)
7 J) P! T. K* y% E8 K% O7 M{
6 n5 j% w5 m. u4 Q/ f. }3 k. B        i=m;8 m! x7 m: ^( _, E& O, p) `$ f
        j=n;1 I# _, O9 l6 D
}
) R- v0 H4 V8 D* p6 _+ q* w. @! W! T" w1 w5 Y$ e; I
void CA::print()" C4 P  S) Y" i
{
( x% @6 r: b8 E! i( y        cout<<i<<endl<<j<<endl;
, z1 [* M# Q5 Z8 _% j; p* F* m}
$ m1 ]' V) i) w& Y4 R6 F
0 Z  G/ r8 M- T* i' t4 jCA::~CA()
7 k- r& w& b) y& j  w{( A3 z7 p; ]# R% R6 ^" x, w& f
}$ s$ S0 Z2 @  ~2 r; d; u" y) J

% E0 J3 F7 I% c1 d; N/ O#include <iostream>; j6 U" R' H$ }: ?
using namespace std;+ }" j" W9 E: o4 ~5 U7 U6 _
#include "复制构造函数工作原理.h"
% @2 F- T; |( m6 z5 I$ g2 r6 Gint main(void){        
# }# A8 A0 p1 q2 O; K. R. S9 z: jCA a(2,3);        . G! B+ m& @5 b5 F7 r5 J: U$ F
a.print();       / c5 S5 n4 m& U3 N# V% A
CA b(a);        0 h' G: E+ ~% \& o' d% A& Q
b.print();
% v, y/ D" Z/ G8 p       5 R  Y* J  i1 ^$ r6 t# ~& F" {
return 0;
8 Z% h' a2 w. i% X3 m2 l3 y" m: X' Y}
4 ^% e; W5 {  O0 U8 k$ M+ G9 _
0 v' k/ b  j7 \  p, e- l9 Z2 r6 K
! o' x5 b6 @1 F- P6 m  ?6 N! l
% t1 E" H& s; ^/ C' ~& W" S0 N- d: X3 ^* J  j5 f2 p
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
+ g8 J' k& n* I8 b, Z1> 初始赋值时:CA b = a;
! \7 l( N# p% e2> 按值传参时:void myfun(CA ca);- z, D9 w6 k: {  a( r
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
! F% Q" \4 [* T2 Y- S
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-7-15 17:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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