写一个代码样例,classA先构造,classB后构造,但需要classB先析构,classA后析构
时间: 2023-04-11 21:00:52 浏览: 100
可以使用以下代码实现:
```
#include <iostream>
using namespace std;
class classB;
class classA {
public:
classA() {
cout << "classA constructed" << endl;
}
~classA() {
cout << "classA destructed" << endl;
}
private:
classB* b;
};
class classB {
public:
classB() {
cout << "classB constructed" << endl;
a = new classA();
}
~classB() {
cout << "classB destructed" << endl;
delete a;
}
private:
classA* a;
};
int main() {
classB b;
return 0;
}
```
在这个代码中,classA和classB都有构造函数和析构函数。在classB的构造函数中,先输出classB constructed,然后创建一个classA对象。在classB的析构函数中,先输出classB destructed,然后删除classA对象。在main函数中,创建一个classB对象,程序运行结束时,先输出classB destructed,然后输出classA destructed。因此,classB先析构,classA后析构。
阅读全文