1、派生类的构造函数: ( J) J. N5 D2 W) o" x
派生类的对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共同构成。
' Q. `) L5 Y4 w d4 ^9 j; o* [构造函数不能被继承,因此派生类的构造函数必须通过调用基类的构造函数来初始化基类对象。所以在定义派生类的构造函数时除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。如果派生类中还有子类对象,还应包含对子类 对象初始化的构造函数。 5 B* ~) G, y. e& c( j
• 一般格式: " X8 Q' C" Y7 y
< 派生类名 > ( < 派生类构造函数总参数表 > ): < 基类构造函数 >(< 参数表 1>),< 子对象名 >(< 参数表 2>) 7 _6 x# E) I ?* \$ Q. w8 H) Q
{ * n5 O# I! F6 N% \: y% h
< 派生类汇总数据成员初始化 >
7 _1 i/ `" U# H7 `/ P}; 9 G0 P' u, m+ P! ?' @ a8 Q$ {- R
• 派生类构造函数的调用顺序:
# |+ \9 W" w$ ]' F7 C8 U0 z' f* {% j• 基类的构造函数
, @; N# r5 w. m$ @% L% Z. \3 b• 子对象类的构造函数 % M1 C9 A8 u: p% b+ x, U ]( C* @+ O
• 派生类的构造函数 5 A; E; Q1 D0 M8 u9 y) _5 I
例如:分析下列程序的输出结果:
: M2 p, C' O2 J- P#include . G9 v( u; L! Q+ Z1 o
class A 4 h; B6 [. Q& V9 F
{
: r9 `( y& T. g* e% \ Kpublic:
) t1 q' A3 D: c$ j: K9 c- ]! e/ n$ qA()
* h/ D( e- s: }& P& \9 M9 b8 a
8 Q' h, g4 A) O) W0 U# T4 V{a=0;cout |