class A { public: … private: … }; class B { public: … private: A a; … }; |
#include class A { public: A(int i, int j) { A1=i; A2=j; } void print() { cout< private: int A1, A2; }; class B { public: B(int i, int j, int k):a(i, j), b(k) { } void print(); private: A a; file://子对象 int b; }; void B::print() { a.print(); cout< } void main() { B b(6, 7, 8); b.print(); } |
该程序的输出结果为:
6,7
8
其中,a(i, j), b(k)是成员初始化表,它有二项,前一项是给子对象a初始化,其格式如下:
<子对象名> (<参数表>)
后一项是给类B的数据成员b初始化。这一项也可以写在构造函数的函数体内,使用赋值表达式语句
b = k;
给类B的数据成员初始化。