C+±学习记录-面向对象-对象成员
一、对象成员
在C++的类中,类内的成员可以是其他类的对象,我们把这种成员称为对象成员
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| class p { public: string name; public: p(string n):name(n) { cout << "p的构造函数被调用" << endl; } ~p() { cout << "p的析构函数被调用" << endl; } };
class a { public: string aname; p p1; public: a(string n, string m) :aname(n), p1(m) { cout << "a的构造函数被调用" << endl; } ~a() { cout << "a的析构函数被调用" << endl; } };
|
注意:对象成员的类定义一定要写在包含该对象成员的类之前
二、构造和析构的顺序
构造时,对象成员先行调用构造函数,包含对象成员的类再调用构造函数
析构时则反过来,包含对象成员的类先调用析构函数,对象成员再调用析构函数
示例:
1 2 3 4 5 6 7 8 9 10
| void test() { a ax("123", "456"); } int main() { test(); system("pause"); return 0; }
|
运行结果:
1 2 3 4 5 6 7
| p的构造函数被调用 a的构造函数被调用
a的析构函数被调用 p的析构函数被调用
|