【发布时间】:2014-07-26 08:05:06
【问题描述】:
我是 C++ 新手 关于如何调用基本构造函数,我有 2 个疑问。
1.) 假设我的代码看起来有点像这样。
#include<iostream>
using namespace std;
class Base {
public:
Base() { cout<<"Constructor: Base"<<endl; }
virtual ~Base() { cout<<"Destructor : Base"<<endl; }
};
class Derived: public Base {
public:
Derived() { cout<<"Constructor: Derived"<<endl; }
~Derived() { cout<<"Destructor : Derived"<<endl; }
};
int main() {
Base *Var = new Derived();
delete Var;
return 0;
}
有人告诉我,在通过初始化列表定义派生构造函数之前,必须显式调用基本构造函数。 但是这里没有对基本构造函数的任何调用,代码按预期工作。
**The output for the above problem is**
Constructor: Base
Constructor: Derived
Destructor : Derived
Destructor : Base
2.) 现在假设基类构造函数采用参数化参数,但派生构造函数为空。在主函数中,我声明了一个派生对象,构造函数没有任何参数。会发生什么?有什么方法可以单独向该对象的基本构造函数传递参数?
谢谢。
【问题讨论】:
标签: c++ inheritance constructor