我有这堂课:
class A : public B
我需要在A中添加一些受保护的字段:_field,我无法触摸/更改B。现在,B和A中的所有函数都是虚拟的,除了构造函数。显然,_field 不是 B 类的一部分。
我需要初始化_field。如果唯一的构造函数是 B,我该怎么做?另外,像这样的东西:
unsigned long _field = 0;
给我一个错误编译。
我通过以下方式解决这个问题:
class A : public B
{
protected:
unsigned long _field;
public:
void fooFunction(){
....do other stuff....
static bool isInitField = false;
if (!isInitField){
_field = 0;
isInitField = true;
}
...rest of the function...
}
有没有更好的方法可以在不使用静态的情况下做到这一点?
谢谢,或者