写出类 Base、Inner、Top 三个类之间的关系 ⚫ 给各个类添加构造函数/析构函数,并在函数中加入输出语句,使得对象生成和消亡时, 能做出相应的显示;在main( )函数各语句执行前或后,也加入相应的输出信息,方便 观察构造函数/析构函数执行情况。最后从运行结果中分析总结出 Top 类生成对象以及 对象撤销时,构造函数/析构函数的调用规律。 ⚫ 在 Top 类中增加拷贝构造函数,比较 void fun1(Top t)和 void fun2(Top& t)调用时参数传 递的区别。 以上代码写在一个源文件中,从程序运行结果总结回答上面问题。
时间: 2023-02-07 19:08:03 浏览: 70
首先,Base、Inner、Top 三个类之间的关系是这样的:Top 是一个类,它包含一个 Inner 类的成员变量,Inner 是一个类,它包含一个 Base 类的成员变量。所以可以说 Inner 是 Top 的内部类,Base 是 Inner 的内部类。
为了给这些类添加构造函数和析构函数,并在函数中加入输出语句,我们可以这样做:
```
class Base {
public:
Base() {
std::cout << "Base 构造函数" << std::endl;
}
~Base() {
std::cout << "Base 析构函数" << std::endl;
}
};
class Inner {
public:
Inner() {
std::cout << "Inner 构造函数" << std::endl;
}
~Inner() {
std::cout << "Inner 析构函数" << std::endl;
}
Base b;
};
class Top {
public:
Top() {
std::cout << "Top 构造函数" << std::endl;
}
~Top() {
std::cout << "Top 析构函数" << std::endl;
}
Inner i;
};
```
现在我们可以在 main 函数中使用这些类来创建和删除对象,并在函数的各个语句执行前或后加入相应的输出信息,以方便观察构造函数和析构函数的执行情况。
```
int main() {
std::cout << "在创建 Top 对象之前" << std::endl;
Top t;
std::cout << "在创建 Top 对象之后" << std::endl;
return 0;
}
```
从运行结果中可以看出,在创