use*_*622 12 c++ enums static nested class
在如下所示的类声明中定义时,static enum和enum定义之间的区别是什么?
class Example
{
Example();
~Example();
static enum Items{ desk = 0, chair, monitor };
enum Colors{ red = 0, blue, green };
}
Run Code Online (Sandbox Code Playgroud)
另外,既然我们在一个类中定义类型,我们称之为什么?通过类比,如果我在类中定义变量,我们称之为成员变量.
Pra*_*ian 11
static无法应用于enum声明,因此您的代码无效.
来自N3337,§7.1.1/ 5 [dcl.stc]
该
static说明符只能应用到的变量和函数的名称,并以匿名联合...
的enum声明是没有这些的.
您可以创建一个实例,enum并根据static需要进行设置.
class Example
{
enum Items{ desk = 0, chair, monitor };
static Items items; // this is legal
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下items就像任何其他静态数据成员一样.
这是一个MSVC错误 ; 从链接的错误报告中,似乎编译器将允许声明static和register存储说明符enum.该错误已被修复,因此修复程序可能会在VS2015中提供.
| 归档时间: |
|
| 查看次数: |
18935 次 |
| 最近记录: |