头歌声明一个基类 BaseClass,有整型成员变量 Number,构造其派生类 DerivedClass,观察构造函数和析构函数的执行情况。
时间: 2024-02-12 18:04:27 浏览: 100
好的,让我来解答您的问题。
首先是 BaseClass 基类的定义:
```c++
class BaseClass {
public:
int Number;
BaseClass() {
std::cout << "BaseClass constructor is called." << std::endl;
}
virtual ~BaseClass() {
std::cout << "BaseClass destructor is called." << std::endl;
}
};
```
这里定义了一个整型成员变量 Number,并且定义了构造函数和析构函数,构造函数会输出一句话表示被调用,析构函数也会输出一句话表示被调用。
然后是 DerivedClass 派生类的定义:
```c++
class DerivedClass : public BaseClass {
public:
DerivedClass() {
std::cout << "DerivedClass constructor is called." << std::endl;
}
~DerivedClass() {
std::cout << "DerivedClass destructor is called." << std::endl;
}
};
```
这里定义了一个派生类 DerivedClass,它是从基类 BaseClass 继承而来的。DerivedClass 中定义了构造函数和析构函数,同样会输出一句话表示被调用。
接下来是一个使用例子:
```c++
int main() {
DerivedClass d;
d.Number = 10;
std::cout << "d.Number = " << d.Number << std::endl;
return 0;
}
```
在 main 函数中,我们定义了一个 DerivedClass 类型的对象 d,并且设置了它的 Number 成员变量为 10。然后输出 d.Number 的值。
执行结果如下:
```
BaseClass constructor is called.
DerivedClass constructor is called.
d.Number = 10
DerivedClass destructor is called.
BaseClass destructor is called.
```
可以看到,在创建派生类对象时,基类的构造函数会先被调用,然后才是派生类构造函数。在销毁派生类对象时,派生类的析构函数会先被调用,然后才是基类析构函数。
希望这个例子可以帮助您理解基类和派生类的构造函数和析构函数的执行情况。
阅读全文