鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
6 |: y2 {. m2 y  i- a5 P# i* p
% k# V& k. u' _+ o3 r6 b1 k8 sclass CA5 O" c  D; ?9 D; N7 ~7 m' Q
{/ ~5 S& B" Y0 c& g9 v0 @: v
public:0 s  Q5 c* k9 d; L9 F* j/ O
        CA();; x8 M9 j- U% B, A
        CA(CA&);
+ h. g. p4 e! l+ L% G9 @        CA(int ,int );7 d4 Y' O( Q' k: V* j" |
        ~CA();
: `; ]' ~! T% b$ X! q        void print();
% k. s) t( y, Q+ G' }& d) ~% L$ d5 b$ h! @3 k7 ]! w
private:
: f# C) F% @0 s( J0 b; }        int i;
3 D: d8 R: [1 T& @5 Y        int j;5 S, S% o, B! M% I* B
};
4 A* v. \/ c% X) e& f6 Q! `; G3 [; P/ b; S! m: Z. X+ G1 v1 x
CA::CA()
8 J- @9 c( J2 Y4 m6 |  K2 v5 a+ d# n9 ]{$ T  G% U/ [+ h( t! y: w0 r
}7 W% M" z, I0 [- Z

4 g+ z4 D" o3 X9 ACA::CA(CA&one)) o5 X% T3 O1 {' s3 k, _$ B
{
, D! I& y- l$ E4 W        cout<<"调用复制构造函数"<<endl;+ p/ m4 [; t: ~2 K* B
        this->i=one.i;3 ~3 N  X1 `4 h( _  r) w" u
        this->j=one.j;
1 _9 v: U2 K9 {8 J$ [( Z}! P$ ?$ q0 U! T
; f& J+ W  }3 c2 H9 h) S
CA::CA(int m,int n)
' r! I2 f% O* s{
& T/ T% `3 B& e( B; x! B        i=m;
4 H7 X9 R# E1 H        j=n;
) I0 g2 P6 i' O& h4 d, n6 \/ E}
' D& t$ C- L- U# B
4 _: l: d+ A) ?4 T: H; t' K3 D% ~% d: Bvoid CA::print()
% Z% Q# b& a  W- B) l' \, a{
9 h4 R- N  d  u' J        cout<<i<<endl<<j<<endl;
5 F. \/ @7 E/ v3 m}+ ]& [- R, A; p! o

& ^1 J  d* Z: g6 nCA::~CA()5 ^- @8 K. g6 Z+ N0 F) b
{
& h( ?3 O8 @2 `, \" n}7 h2 s' {! D% C
. ?0 ]+ O, B) E+ d
#include <iostream>& A9 z1 H! V" h- Q% B% t
using namespace std;
- X# W1 Z4 ]5 f2 `#include "复制构造函数工作原理.h"
' _- Z" D3 B/ X1 l6 X/ f6 i# aint main(void){        
' p! d. M7 H9 f  V# w* }' QCA a(2,3);        - c% A8 ^+ H: o) ^7 R( d0 z
a.print();      
, z) ~9 W1 _/ c- l* M- {5 l CA b(a);        
8 }3 N* d  S, {9 Sb.print();
1 ^3 c- E- ]. }9 n       - A1 f" D7 U8 H9 A
return 0;
3 ]! C) [1 ]& G1 u/ L1 w}
3 {; f' O( ]6 W8 M! g' S' A* y  v
& u, j5 F% T2 A4 _% P# v7 y5 p* f2 d0 @' t0 E7 Z9 S

# N6 {; E0 S8 E: `
3 V7 F7 ?  _9 t/ Q8 B: v0 b; S- m0 [
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:' x/ Q0 p+ f" M# x: W8 E
1> 初始赋值时:CA b = a;$ z* x+ g! p1 k
2> 按值传参时:void myfun(CA ca);
- G6 k3 T0 H7 Y$ g+ N& J. H3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 9 w! J" u7 C# O1 j) T1 G* C
复制构造函数在以下几种情况下调用:+ t7 m2 J; ?2 o$ Q+ q
1> 初始赋值时:CA b = a;
# @* c5 x" R7 f- u; m5 v# S2> 按值传参时:void myfun(CA ca);

/ P& C* F9 P9 Q+ S第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-7-24 16:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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