【发布时间】:2012-09-28 19:36:27
【问题描述】:
有没有办法强制派生类使用抽象基类的构造函数?它一定不是真正的构造函数,我对创造性的解决方案持开放态度。
class Abstract
{
private:
int Member;
string Text;
public:
Abstract(int Member, string Text)
{
this->Member = Member;
this->Text = Text;
}
// e.g. defining virtual functions
}
例如,我的抽象类有一些私有成员,每个派生类也应该有。并且它们应该在构造函数中定义,即使违背派生类的意愿。
我知道构造函数不是继承的。但是有没有产生类似行为的解决方法?
【问题讨论】:
-
未定义默认构造函数会强制派生类使用任何其他构造函数。
-
不清楚问题是什么。从
Abstract派生的任何类都必须使用Abstract中唯一的构造函数。 -
只是不要创建任何不符合您要求的构造函数。由于派生类实例是基类的实例,因此必须调用构造函数。您无需做任何特别的事情。
标签: c++ oop class inheritance constructor