【发布时间】:2016-04-25 23:25:15
【问题描述】:
最近我读了一些关于 C++ 中纯虚函数概念的文章,我想知道,给出以下代码:
class First
{
public:
virtual void init() = 0;
protected:
bool initialized;
};
class Second : public First
{
public:
void init() { ((*someting*) ? (initialized=true) : (initialized=false));
};
如果First 类的创建者想要确保init() 的实现必须将initialized 变量设置为true 或false,他们怎么能这样做?是否可以强制执行纯虚函数来设置从基类继承的任何变量?
【问题讨论】:
-
“是否有一个选项可以强制实现纯虚函数来设置从基类继承的任何变量?” 没有。
-
您可以做的是在声明时将bool成员设置为false(或true)(在基类中)
-
可惜......无论如何,@πάνταῥεῖ - 感谢您的快速回答!
-
在 C++ 中,如果派生类的构造函数失败,通常会抛出异常。这样,未初始化的对象将永远不会存在。
标签: c++ inheritance pure-virtual