声明一个基类 BaseClass ,有整型成员变量 Number ,构造其派生类 DerivedClass 观察构造函数和析构函数的执行情况。
时间: 2023-12-03 15:45:52 浏览: 165
可以先定义一个基类 `BaseClass`,并在其中声明一个整型成员变量 `Number`,代码如下:
```cpp
class BaseClass {
public:
int Number;
BaseClass(int number) : Number(number) {
std::cout << "Executing BaseClass constructor" << std::endl;
}
~BaseClass() {
std::cout << "Executing BaseClass destructor" << std::endl;
}
};
```
然后再定义一个派生类 `DerivedClass`,继承自 `BaseClass`,代码如下:
```cpp
class DerivedClass : public BaseClass {
public:
DerivedClass(int number) : BaseClass(number) {
std::cout << "Executing DerivedClass constructor" << std::endl;
}
~DerivedClass() {
std::cout << "Executing DerivedClass destructor" << std::endl;
}
};
```
在 `BaseClass` 的构造函数中输出一句话,表示正在执行 `BaseClass` 的构造函数,在析构函数中输出一句话,表示正在执行 `BaseClass` 的析构函数。在 `DerivedClass` 的构造函数和析构函数中也同样输出一句话,表示正在执行 `DerivedClass` 的构造函数和析构函数。
测试代码如下:
```cpp
int main() {
DerivedClass obj(123);
return 0;
}
```
执行结果如下:
```
Executing BaseClass constructor
Executing DerivedClass constructor
Executing DerivedClass destructor
Executing BaseClass destructor
```
可以看到,当 `DerivedClass` 对象被创建时,首先会执行 `BaseClass` 的构造函数,然后才会执行 `DerivedClass` 的构造函数。当 `DerivedClass` 对象被销毁时,首先会执行 `DerivedClass` 的析构函数,然后才会执行 `BaseClass` 的析构函数。这是因为在派生类的构造函数和析构函数中,会先调用基类的构造函数和析构函数,再执行自己的构造函数和析构函数。
阅读全文