鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑 7 ]+ s% s% b7 h% P, f

) ^2 z/ j1 y$ t5 Y' T. k# p; |( kclass CA
$ s( B$ x3 o9 X6 ~+ f5 P% ]{
, C5 ^$ P, p1 Dpublic:
$ A7 X) \; G2 D6 r- ~) V% B        CA();% D( K2 O0 L: ^: C, ~
        CA(CA&);* H9 P- a0 [: c% h  ]
        CA(int ,int );
. D2 _* _6 Z/ R2 S! u/ N/ [        ~CA();
( y: Q7 y' t9 k0 B- a        void print();" l  O" ?" F" W  Q2 {

' \) _8 s4 q) m; @" [private:7 _/ Y. ]  k. q  }& F# f3 {
        int i;- u3 R) y- c: i( p) E; F8 f
        int j;+ Z8 d  y; ?6 i# k8 w: e5 \1 \
};: @' |& \. ?. w0 M

2 h! Y$ w+ }/ [* c) u  HCA::CA()
$ R  s# i8 g( ]! }! F{
( {9 t$ d% q0 t) D3 `1 h}
: B1 d' y1 U# j4 K  d8 C" V9 ?' \8 B, K( s, `
CA::CA(CA&one)" R7 j! [, r7 x) H
{
. e- c; D+ V$ d3 Z5 o        cout<<"调用复制构造函数"<<endl;* W& c: ?: [, J+ N( }
        this->i=one.i;
0 y2 N& M  U% r4 i* R+ `7 |% U        this->j=one.j;9 P  ~4 b& {; ^& R3 C: |
}9 s2 e/ \( [* ?8 I1 w0 A. w

3 c, h# K7 m: n6 J! YCA::CA(int m,int n)
: S6 e" v/ g) r+ k5 n{
+ p2 M0 p; E2 Y: J        i=m;, J+ V7 j& M* l6 _" m5 o
        j=n;
$ W% j1 o8 l+ U. s6 x: D}; o" V7 E& ?: ]- L

! s% M: U  j) A+ H' f# Yvoid CA::print()
- Z: ]- I3 Z% @7 x- e$ E{
" _" i; s  j0 H6 `# n7 V1 K        cout<<i<<endl<<j<<endl;
; D) M% @8 f3 m2 M7 z}" u) L" b# r4 ]% t
0 w) T; T$ L( J/ b1 v% n
CA::~CA()
" e: c. \6 u& R, c+ K2 `5 ^0 D{
, w9 V+ ?2 q% n  Z. ~  `. w/ _9 y" O}1 D3 U4 `1 ~% }# v( S5 Q) R9 a: x

' c1 G* A, {& n- L8 s  j3 c5 B( y! o* u#include <iostream>: ]& a& r0 ^- F. f  B
using namespace std;
( l6 x( G2 ]0 T, J* Y/ `$ k#include "复制构造函数工作原理.h"
! \# W; j: c# Tint main(void){        . e. |. ~! O0 [
CA a(2,3);        
7 Y% @; ~) _4 c  ]$ X- ?a.print();       ; {, g( ]2 {$ G% t; ^+ h9 p
CA b(a);        $ q$ X; t. g' o) R" K
b.print();3 G8 u1 m  g6 o! R
      
: O, b5 M, r' E& A( m return 0;4 H' H, F3 j0 ]. Y
}! o% F" ]! W- P: ?+ D" E1 v$ E, b
2 A, m& T3 D% B0 @$ y& P  s
7 b1 v! l  L$ @& x& @$ Z$ A8 e

& b! r3 o+ e  e: _6 _, V+ G! k: p! L& I7 Z& h6 i% ?" n
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
: I. L! T( \$ m1> 初始赋值时:CA b = a;. R. M# ]3 ~$ \+ W4 e
2> 按值传参时:void myfun(CA ca);
7 f1 V7 K8 ^& ~. l4 S" p/ {9 c3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层

/ s, c' J0 G" j/ _; q6 j第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-4-11 06:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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