鱼C论坛

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

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

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

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

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

x
本帖最后由 (@_@) 于 2013-3-21 10:43 编辑
# O( K  R: C3 j- G- I7 Z4 B( }
# ?% L' N7 a/ |' u( a2 _class CA2 Y5 L$ Y& d& S0 Z" S# ]3 U
{( X- a  x# S1 i( ]
public:
) |4 a" {$ L3 W/ Q6 u; s( \  d        CA();
: W8 ?8 X* c2 R        CA(CA&);7 Y$ s+ w9 T5 J" m1 Y- f( ?
        CA(int ,int );1 \) }) H, x( t& s; w
        ~CA();, U1 a; _" ?# b) `
        void print();! |# A/ E/ W# g5 R

( {0 M( J4 }3 J. f  }- G! m% }# m2 Jprivate:& c/ t( k8 w% f  ?
        int i;
8 j; J- A' K/ h1 [2 t1 M        int j;
4 g; Z+ U3 X* G+ n  d};  M: p3 n" x# h1 S5 j' ~
% M' z" C2 b( S+ K" e, ^! i
CA::CA()
) r+ k" O" o8 N{
* l* K* }# @) Z' w! j2 y}8 k/ i, W+ B' m$ Q$ C0 O. R
6 }6 `1 u4 t( Z
CA::CA(CA&one)
0 o) w% Z1 Z: @5 Z{
0 C  B6 h/ R% e; i2 N        cout<<"调用复制构造函数"<<endl;2 s) Q- w9 Q9 V5 C7 ^8 s
        this->i=one.i;
  X: i$ ]% L: p1 N" Q2 y- d        this->j=one.j;$ _9 N! g! z( [4 J
}' c$ ~. g$ B& M3 Q
4 W: `  }* v' Y6 L1 t
CA::CA(int m,int n)
, j7 G' a* S% s; T{& a  s4 |: }- e5 S  B) {
        i=m;4 t1 a5 a9 E. N  n6 g* v( b
        j=n;
; ~3 E% W5 K; w  }4 C% D}
  @8 y: M! N. y% A8 |/ _5 |. a* J- a/ C1 O
void CA::print()3 z4 O3 Q) M+ j, P
{
: J* z/ V9 t4 X! P2 @6 f7 i' D6 v        cout<<i<<endl<<j<<endl;. G  Q1 q0 q$ u" {5 v5 [, j0 }
}
6 ?6 w# q% W; S8 `+ |0 U
8 G* ^& F1 g% }& tCA::~CA()
, v( h9 @2 G2 B  v{2 P7 s' w0 `7 K& g, L& N& p, K
}! {# E* g4 E2 Q' g- T1 U

9 i; _; u( j) E( x* q; T4 X#include <iostream>
% ^  _* N' p" p8 B4 dusing namespace std;: I' @4 |1 e) B- {
#include "复制构造函数工作原理.h"/ S' l4 U3 {2 N% V  Y. R
int main(void){        
' o5 q8 _( z; hCA a(2,3);        
7 t6 H0 u, m: E+ Qa.print();       2 m3 H; a" y/ w  D: ~
CA b(a);        
* o9 B' W' b( h3 ?5 q3 r& Rb.print();
4 S6 H1 {; u2 V0 V       8 D7 V% i" S! B# D( U; D
return 0;; r$ `. N) O) W
}
6 Q) Z9 [( \$ ?7 O( Y) e! L
& F! m/ ]( C; S9 p
! u; U. {* G6 H/ n! R( o, [* ^, B& E# G- p9 p8 j: _8 k, \
; k# W' r  i/ _2 r7 F; ]
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-25 13:18:31 | 显示全部楼层
复制构造函数在以下几种情况下调用:
6 ?6 T. F* j! k7 P; o1> 初始赋值时:CA b = a;$ `: X1 ^2 p8 p0 C' b
2> 按值传参时:void myfun(CA ca);
6 q. q8 B3 X: s; |- u1 A3 z: D3> 函数返回时:CA myfun2();
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-3-28 12:00:37 | 显示全部楼层
/ f" B( G8 j. u& T
第一个应叫初始化,不叫赋值
小甲鱼最新课程 -> https://ilovefishc.com

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

GMT+8, 2026-6-10 13:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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