c++基类的构造函数和析构函数的调用
时间: 2024-09-26 21:04:09 浏览: 34
C++构造函数和析构函数顺序
在 C++ 中,当创建基类对象时,无论它是否直接实例化还是通过派生类间接创建,基类的构造函数都会自动被调用。这是因为在创建派生类的对象时,首先会创建基类的对象,然后才是派生类的部分。例如:
```cpp
class Base {
public:
Base() { // 基类的构造函数
baseConstruct();
}
protected:
void baseConstruct() {
// 构造函数中的代码
}
};
class Derived : public Base {
public:
Derived() : Base() {} // 派生类的构造函数会先调用 Base 的构造函数
~Derived() { // 基类的析构函数
baseDestruct();
}
protected:
void baseDestruct() {
// 析构函数中的代码
}
};
```
同样地,在删除派生类对象时,基类的析构函数会在派生类析构函数执行之前被调用,这是一种资源清理的过程,确保基类内部的数据成员能得到正确的释放。
阅读全文