声明一个基类baseclass,有整型成员变量Number,构造其派生类DerivedClass,观察其构造函数与析构函数执行
时间: 2024-02-01 16:03:35 浏览: 143
好的,我来演示一下。
```c++
#include <iostream>
class BaseClass {
public:
int Number;
BaseClass() {
std::cout << "BaseClass constructor" << std::endl;
Number = 0;
}
~BaseClass() {
std::cout << "BaseClass destructor" << std::endl;
}
};
class DerivedClass : public BaseClass {
public:
DerivedClass() {
std::cout << "DerivedClass constructor" << std::endl;
}
~DerivedClass() {
std::cout << "DerivedClass destructor" << std::endl;
}
};
int main() {
DerivedClass d;
return 0;
}
```
输出结果为:
```
BaseClass constructor
DerivedClass constructor
DerivedClass destructor
BaseClass destructor
```
我们可以看到,当创建 `DerivedClass` 对象时,首先会调用其基类 `BaseClass` 的构造函数,然后调用 `DerivedClass` 自身的构造函数。在退出作用域时,会先调用 `DerivedClass` 的析构函数,然后再调用 `BaseClass` 的析构函数。这是因为在对象的生命周期中,构造函数和析构函数的调用顺序是按照继承层次从上到下进行的。
阅读全文