鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
3 W7 Q* c& [9 R' O& L. a
1 J* b: |: O! U+ vclass CA1 r/ E. V% O) j8 l5 c
{
& A8 C% Z. ]2 Kpublic:
1 D) _% n% G- _* x, v2 x: E        CA();
# h4 d5 I. B. q3 l3 {% X        CA(CA&);
6 M: H# U( U; H* B# y5 ]        CA(int ,int );# e. j0 Y' z9 f- `: O5 i
        ~CA();8 W7 m2 A$ ]# D, i+ s' w) T
        void print();8 C; G! E" f& _# j" z1 ]# l. I
8 Z  C. {( F  `: J
private:9 E7 q6 [4 ~( b% Y& ?/ i+ B
        int i;
- N2 t* ^( c; O8 c        int j;
0 ^, D+ k! z! E! I; ]; \) M( T};5 n- T2 m7 x+ c
9 s5 x8 v; `6 i9 X# [7 s9 F
CA::CA()& W3 i$ v8 B% Q' ~# \
{$ O- z: V+ B4 \
}9 ]# h& k5 e$ g: B3 y* D" [

6 E, {# e1 @0 O0 `% k# s2 wCA::CA(CA&one)
+ ?0 O- o0 r! {0 L$ N* y{
5 A/ W: ~. H8 ^8 Z        cout<<"调用复制构造函数"<<endl;& ?0 r2 M3 ~- H8 ~) L
        this->i=one.i;, t; }" p$ t% H1 S8 p2 n4 m! ~
        this->j=one.j;  y) h- l6 v' r2 e$ D# c
}2 J4 X" H7 t6 p/ T) H

; [- |2 @2 S: p' h7 DCA::CA(int m,int n)3 _! _3 ~* ]3 [6 E9 }  W) r
{
- K7 I( G/ I- G0 o        i=m;
: V/ a2 C0 j3 K( N0 }        j=n;! }$ r0 A2 |4 \$ F& t2 h
}
! ^+ ~8 t$ A  e1 f% @9 R! u9 q: b5 `  C# P2 S3 d2 w! b8 h
void CA::print()
: Q% W% [# l$ u; k4 b) g# h. Y# V{
$ y2 o0 n( O. f' F. z7 n: q. W, I. v        cout<<i<<endl<<j<<endl;
$ c8 Z  `/ B( @& l+ _}) }7 A1 S* Z* M$ @  x7 v
4 C/ P0 F7 s& Y+ V
CA::~CA()8 {2 z3 \" u+ x: t
{
5 l/ u& x# G1 M! ]}; {5 Z1 X+ H6 b- V. @
2 E' O% F8 f$ x$ z; j, z# N; f5 S& B
#include <iostream>% l- e+ F7 w5 `. s2 E" y0 t
using namespace std;
$ f9 v. N9 J3 X: U, x#include "复制构造函数工作原理.h"$ ^5 @; D8 w8 B: O
int main(void){        
* N7 c( j  U5 R; h2 R2 O' Z5 M% X# gCA a(2,3);        ) [& T2 X* }( g5 }# S
a.print();      
; H) S$ o6 K9 u- n CA b(a);        / H, t. m+ n& M" t3 r8 q  Q! D0 [
b.print();6 ?( X; i6 t  P8 f
       $ ~% B/ H- k# ]  n
return 0;
1 M- J& O- \/ f9 Y}
  M4 [+ V/ M% j9 \5 l- \8 ?; E- R7 S
' y3 N& f4 g; w  i
3 b' w8 O1 H0 r4 Q( E$ w
+ H! J/ A  P; w: O( s
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
. @, ~% |% A% {) y1> 初始赋值时:CA b = a;
4 k. D6 B6 B5 k1 U2> 按值传参时:void myfun(CA ca);
$ }* J& i! k6 w, ^8 H$ }3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层

  o2 ?4 H1 [( E, H5 e第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-4 01:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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