派生类的构造函数与析构函数

上一篇 / 下一篇  2012-07-30 11:48:56 / 个人分类:C++

$ct/G5Dr5R\Yi0  当基类构造函数没有参数或没有定义构造函数时,派生类可以不向基类传递参数,甚至可以不定义构造函数。当基类含有带参数的构造函数时,派生类必 须定义构造函数,提供把参数传递给基类构造函数的途径。如果派生类的基类也是派生类,每个派生类子须负责其直接基类成员的初始化。

^4mDe0yd;R0

UO.k3{],pv"X1?0#include<iostream>51Testing软件测试网:TmDBw6wf
using namespace std;51Testing软件测试网@&M9v-OdJ6}"F^&Wz
class B{51Testing软件测试网6]_(y4w"c(B
public:51Testing软件测试网`PP `'CoHA
  B(int n)51Testing软件测试网2d \[~D,`
  {cout<<"constructing B class\n";51Testing软件测试网9m F?1J:N(J5|Q
   i=n;
ppHT\G Z1w0  }51Testing软件测试网mj w6B5pQ@
  ~B()
W^9cDuR0  {51Testing软件测试网*y7Z!j"u xE n i8t*?N
    cout<<"destructing B class\n";
8W4X]hTmV'P0  }51Testing软件测试网a#f*E;P~
  void dispB()
%IJZU]IN*vU7b I0  {51Testing软件测试网 g g7i\iZ;xM4z[(t+Y@
    cout<<"i="<<i<<endl;51Testing软件测试网cu&q].jfI%jR
  }
4\(g0Fg } UQ ]_k0private:
rZA r/X'I.s+oy9g1W:R0 int i;51Testing软件测试网\*C5nJ C)y
};
([+`XW{E:Gc0class C:public B{51Testing软件测试网%~h rw H[ r0bK |
public:
!w AkYJ0 C(int n,int m):B(m)51Testing软件测试网,? DD`+v aR q1|&u
 {51Testing软件测试网0k6S*c/L^+wP
  cout<<"constructing C class\n";
qcS,z3C$L*| {Q.L0  j=n;51Testing软件测试网1{!Dl | L7Y9^2o
 }51Testing软件测试网D|1t0c`-JY6c*~
 ~C()
4AM8Jj&M_oD!?0 {51Testing软件测试网,W0e_0_:qM {e"v2t
       cout<<"destructing C class\n";    51Testing软件测试网 M9N7qvtd8d9tH
 }
Ff*]e I;h(F0 dispC()
M@&F$b&w7Rl0 {51Testing软件测试网-ZGh/pDyg
  dispB();
!pyNm*pLv+r&D0  cout<<"j="<<j<<endl;
Ph,iBe!iQ0 }51Testing软件测试网/NE0g"d"i_
private:
Ah(o|n"L6p0 int j;
51Testing软件测试网i f%`T Lf)kD

51Testing软件测试网#rn7} LJ}z6[

};51Testing软件测试网bX bHt g
int main()51Testing软件测试网 ~$G6PM N?,fR
{51Testing软件测试网;E5e?,z+nI
 B b(10);51Testing软件测试网%q3g~7T!Rv
 b.dispB();
%A-q._Q;A.U0 cout<<"c.dispB()============="<<endl;51Testing软件测试网/i'sT9Oiy9N$L"F
 C c(50,60);
nl\[cB,q3a8g0 c.dispB();51Testing软件测试网st1}+o w
 cout<<"c.dispC()=============="<<endl;51Testing软件测试网6c9j-lc ^
 c.dispC();
6wH9A@ hyb0 return 0;51Testing软件测试网j x&j7[t,FV_`
}
51Testing软件测试网V1F,U%VF ?6EZxO#C

f!v L&fx0E!C&Y0

TAG:

 

评分:0

我来说两句

Open Toolbar