最近我读了一些关于 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 他们怎么办那?是否有一个选项可以强制执行纯虚函数来设置从基类继承的任何变量?
最佳答案
您可以使 init
protected 并让它返回 bool
。
然后有一个新的 initialize
方法,它是公共(public)的并且还设置了 initialized
成员。
由于 init
现在有一个返回值,它必须由任何实现派生类的人设置。
class First
{
public:
void initialize() { initialized = init(); }
protected:
virtual bool init() = 0;
bool initialized;
};
class Second : public First
{
public:
bool init() { return (*something*); }
};
关于c++ - 必须设置变量的纯虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34894570/