鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
, L) k/ x# O9 w3 H8 H+ d  \
) a" r3 s1 O/ u1 O1 N3 r& dclass CA
' Q$ j9 [9 k+ `{6 n! Q2 h4 E/ \; H$ _+ p
public:# Y4 l7 y5 T6 y5 ?) |
        CA();
( q5 y4 M: X. S3 E! C        CA(CA&);' L7 H# V3 k$ Z
        CA(int ,int );
: {+ X3 _7 b* F  Q  p' s- I% x        ~CA();; X' Q/ g9 U' ]; A% n( A* w! J
        void print();
! T+ k2 L; u, C/ x5 ]5 E7 e3 o5 N0 Z$ D
private:$ z# ?9 o1 L" w$ G' ]+ G& ~% p
        int i;
1 a- f: J9 E4 p" `+ m        int j;
+ x/ B5 J* ~2 P) C  l};1 S( O# R3 B. Z  F4 |% c
$ D: Y, A% D/ a1 ~) A; k
CA::CA()& T7 k/ M2 v0 I9 D
{3 X) [  k5 s5 [4 N2 t
}6 ]5 \! O; [* w3 d; |# h/ c% z6 ]0 h
% c% d: E+ e" G3 O1 ~: h( |
CA::CA(CA&one)3 X) [' q  [/ x  a6 N' E
{
5 p: l, N5 \0 K! P        cout<<"调用复制构造函数"<<endl;( Z8 L: m( v+ i( w) X. d3 s
        this->i=one.i;
9 @4 s; w6 o6 D" Y0 Q# s        this->j=one.j;
& O( Z- K* C( k+ D$ _$ X; X% l}4 K5 k; x3 @/ m- j/ u, e8 u7 u) R: p

4 S6 a" d4 G, t! g. G! v  r1 A! eCA::CA(int m,int n)
- [) i7 C7 o4 l- f/ a, {3 z{
' f1 J9 y- W  A9 A* V6 Y' B! I        i=m;
  e9 @& s9 {: S; \* A        j=n;
" V; \. k2 g: e/ T) J" }8 S}
4 ^* o" C3 [/ ^' E2 i1 [0 W5 U2 {$ c3 y- Q% K
void CA::print()- J, c! w# X5 P. [# G
{" \! l* B5 I' u* O4 M
        cout<<i<<endl<<j<<endl;0 S( p( ]% K% W
}
4 l% G/ W! H1 m8 p1 N. ?4 c3 `, V4 ^
1 P0 T' g+ R- |CA::~CA()" }3 H1 m( x' q  e
{
3 ^0 i, m. W4 q( I}
* E# y2 d, f4 I" Q& A$ o! F" n5 x! {" k; g
#include <iostream>/ d/ l) Q3 A* E. K
using namespace std;
0 q# R3 o6 r5 l! S/ y' X#include "复制构造函数工作原理.h"
' ^$ B) p' t) q: ^int main(void){        
6 R; o8 Z4 C3 o$ ?. `$ Z/ }2 O5 |. E' OCA a(2,3);        * M: Z7 a7 ~4 w2 E8 V+ X0 [) I
a.print();      
) C6 I- ?& D: u* Y) z) G# W. P CA b(a);        " r6 ]% g" }0 T+ F3 Z4 R  e3 T
b.print();
- u* X. d- b0 Q! k9 n6 G      
0 ?* \# ?7 X8 F% M return 0;  m$ D( ?! {  }$ W7 F8 _+ _
}1 j; U* y8 e$ L9 @6 i
$ j: v( J8 U* D1 v' Z# ]; z7 Z

0 B0 {- R7 i3 D- S3 d- K
! G% {3 h' p1 @4 J  L* f: q1 @
! i4 ?* Z' J% l( ^7 Q6 s
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:  W0 W! S' S# b/ `6 O
1> 初始赋值时:CA b = a;
. E. Q6 c( U5 V& K# v2> 按值传参时:void myfun(CA ca);
4 m: _; k" p( K8 b9 N6 U3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18
# _# b1 q3 R: p% E复制构造函数在以下几种情况下调用:: {  M+ _+ c! r2 l: s/ Z) `9 q
1> 初始赋值时:CA b = a;
5 O: [; H! G5 A, }7 u2 C2> 按值传参时:void myfun(CA ca);
  P' j0 O/ w; v* |
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-2-14 21:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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