鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
) ?: F0 V0 e8 ?6 ^- J2 h" A4 B- X  X; p
class CA& s8 S. S- K2 c# z3 Q( W
{
" w3 W2 M% {% G. j. p) p# T8 Fpublic:
$ {" ~/ t" @4 o. f  |        CA();- s. Z  ?0 R4 e1 {5 T4 M
        CA(CA&);
! x( \" {  F& r' s3 |8 V- n& a        CA(int ,int );
2 c; W  |" p5 ~        ~CA();
3 ?* R% u5 |# f9 J6 u  b; t+ r* ?        void print();- ]' W' a# A1 E$ Q, n

5 G% u* `* U$ x9 o& Fprivate:, c5 c3 f  J2 _9 T) t
        int i;
( `: e. }3 |1 e+ v        int j;6 r( A! L7 m) [
};
3 S% O- z, u9 ~/ @) _) g+ y2 `& n& c9 s9 o
CA::CA()
4 H$ i. p" }4 C8 ?7 y% o6 B{1 d# h: Z& M$ }
}
/ S$ l& h3 K+ r) J; f' z% M6 C& D1 E* Z5 R6 k+ O3 e: ]1 L6 q
CA::CA(CA&one)7 B- j1 \4 d+ g/ U6 {
{7 y% f& e9 L" e9 c  C
        cout<<"调用复制构造函数"<<endl;6 k. R8 }2 l4 m& M  D
        this->i=one.i;
& i" ?8 c7 B, R% E0 c5 \        this->j=one.j;$ c9 W+ I3 }: f( n% I8 j. l8 l
}) J6 }- c; B% e+ _! S$ d7 {
$ G  [* l) v% ~! ]
CA::CA(int m,int n)3 d0 G' n  O/ h6 Z; B' ~4 R# L. I
{
, C5 ~2 q1 R0 T* b        i=m;
9 l  r9 s+ I" w8 Z- @        j=n;, n* k2 k! d  G# s1 G/ k" y" z
}9 O  A: [* j6 H/ u! I! k" k* |
2 h7 B5 p5 \. D! i, Y- p
void CA::print()4 r; ^- M% U2 s5 B( P  I
{, h% C, p& t  t: A0 a
        cout<<i<<endl<<j<<endl;
& w8 j% y4 ?  e8 R3 l5 i}; ~* W8 Y2 C- T- t- v

: ^" `( ?, w: M# g% L8 ^* p% wCA::~CA()
' T( l7 G- i" [+ X$ E8 r3 X: D# B{
3 B$ m: D9 s3 k" ?0 {  o}6 H" Q3 ?) S. y  J8 ^

8 m9 p; @; Q5 ^0 p3 b( `1 `; @#include <iostream>( G- t( d2 d% e: K& y
using namespace std;
0 L7 \' O% d4 z9 @+ B#include "复制构造函数工作原理.h"
5 v# R7 P' w' Z. d9 X- G1 u" |: Iint main(void){        & L0 u! @8 i" k3 W& _  L4 l
CA a(2,3);        8 w1 W7 J+ n1 G, d; j
a.print();       - x/ x  x) z8 G' ~" s
CA b(a);        
3 J8 ~4 r# o! r: e, \( S; Wb.print();* `! ^- t* [, q5 {2 P3 w# d
       + {+ L& K8 ]* [
return 0;
" M$ K7 s, H# r- d" N" Q  Q}+ j! r4 I( B: R
( o$ U& Y" D: z( ?( E; Y0 |
0 ~# W! d1 s  B8 s
5 }! _  l4 `1 F* r' e
, I4 u' d& v+ }  p! y
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
% m+ ]9 K6 n; J1> 初始赋值时:CA b = a;$ t  r  O2 L6 i# i
2> 按值传参时:void myfun(CA ca);2 D1 Y1 x' Y+ @6 ?! H
3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
kangels 发表于 2013-3-25 13:18 : ^- y/ A8 T' F3 h5 |/ c
复制构造函数在以下几种情况下调用:
) H0 A# D7 p& _1> 初始赋值时:CA b = a;0 ]- X4 u' W  K, S3 H& M% {
2> 按值传参时:void myfun(CA ca);
7 _' Y5 g% A  d" l  {* H. _- T: h
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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