2012-09-19 165 views
1

如果我们在枚举中使用枚举名称作为函数,会发生什么?为了详细说明,让我把下面的代码片段枚举名称作为函数

enum check{ 
    HELLO, 
    HI, 
    HOWDY, 
    SALAM, 
    SALOM, 
    STOP 
}; 

void main() { 
    int p = check(); 
    cout<<p; 
} 

我可以假设它可以在类或结构的情况下调用默认的构造函数,但是有一个枚举,会发生什么?

如果它是某种类似construtor的方法,它是否返回0?因为“P”被设定为0。

+1

你可能会写'int p = int();'这叫做_value-initialization_ – Fiktik

回答

2

它使用一个值初始化(就像一个classstructcheck副本初始化int,并将其返回0

而且很明显,您并未将其用作函数,这是值初始化的语法。

未使用的函数类型int就像

int p = int();