为了便于RTTI,我考虑初始化受保护的基类成员 变量使用枚举。
RAISERROR
现在,要在派生类中初始化它,我可以编写派生类 CTor是这样的:
class myBase
{
public:
typedef enum class mySubType { base, type1 };
myBase() : myType( mySubType::base ) {}
virtual ~myBase();
protected:
mySubType myType;
};
???
答案 0 :(得分:0)
抱歉,这是不可能的。见这里:C++ error initializing base class data member in the derived class member initialization list
基本上你必须重写基本的CTor声明来接受这样的枚举:
document.location.reload()
通过使CTor也不接受任何参数,您已经定义了一个默认的CTor,在使用std容器时可以派上用场。
最后以这种方式在派生类中使用它:
myBase( mySubType _t = mySubType::base ) : myType( _t ) {}