51 lines
891 B
C++
51 lines
891 B
C++
|
// 多个对象的构造和析构
|
|||
|
// 类对象作为成员
|
|||
|
// d12 的改造测试
|
|||
|
#include <iostream>
|
|||
|
|
|||
|
using namespace std;
|
|||
|
|
|||
|
class A
|
|||
|
{
|
|||
|
public:
|
|||
|
A()
|
|||
|
{
|
|||
|
cout << "A()" << endl;
|
|||
|
}
|
|||
|
A(int x)
|
|||
|
{
|
|||
|
cout << "A(int x)" << endl;
|
|||
|
}
|
|||
|
~A()
|
|||
|
{
|
|||
|
cout << "~A()" << endl;
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
class B
|
|||
|
{
|
|||
|
public:
|
|||
|
B() // 构造函数用于初始化成员数据,说明成员变量先创建
|
|||
|
{
|
|||
|
cout << "B()" << endl;
|
|||
|
}
|
|||
|
// 成员名:(参数名)
|
|||
|
B(int x) : a(x) // 指定 a 对象的构造函数进行数据初始化
|
|||
|
{
|
|||
|
cout << "B(int x)" << endl;
|
|||
|
}
|
|||
|
~B() // A 的对象在 B 的空间中,A 对象在 B 空间释放之后就失效,失效也会释放空间(调用析构函数)
|
|||
|
{
|
|||
|
cout << "~B()" << endl;
|
|||
|
}
|
|||
|
|
|||
|
private:
|
|||
|
A a; // A 类的对象作为 B 类的成员
|
|||
|
};
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
B b1(1);
|
|||
|
return 0;
|
|||
|
}
|