我正在创建一个新的枚举:
enum WState {SLEEPING=2, WAITING_FOR_DATA=3, SENDING=4, IDLE=5, ERROR=6};
然后我试图将该枚举类型的变量直接初始化为默认状态。
WState CurrentState = WState::ERROR;
我无法弄清楚正确的语法,或者在搜索答案时可能会遗漏一些重要的关键字。它说:
不允许使用数据成员初始化程序
答案 0 :(得分:1)
在C ++ 11中,您正在做的事情是允许的。但是,在C ++ 03中,您必须在类构造函数中执行初始化(可能在初始化列表中,如下所示):
class Wireless
{
public:
enum WState { /* ... */, ERROR = 6 };
WState CurrentState;
Wireless() : CurrentState(WState::ERROR)
{ /* ... */ }
// ...
};