有如下的类定义

class IOOptions
{
    public:
    IOOptions(int opt = 0) : _options(opt) { }
    \\ blah blah
    typedef enum { OPT1= 1, OPT2= 2} IOOopts;

    protected:
    int _options;
};


现在以下两个语句是否等效?


陈述1:IOOptions io=IOOptions::OPT1;
陈述2:IOOptions io=IOOptions(IOOptions::OPT1);

最佳答案

是的,这两个语句将具有相同的效果。但是还有很多人可能会更清楚地发现的第三种选择:

IOOptions io(IOOptions::OPT1);

关于c++ - C++使用枚举变量调用构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27775679/

10-11 18:25