我们是否必须在使用枚举器之前声明枚举类?
如果不是,我们如何转发声明的枚举?
以下程序导致编译错误
#include <iostream>
enum class Color;
int main()
{
Color c = Color::Green;
}
enum class Color
{
Red,
Green,
};
编译器:
1>------ Build started: Project: Project1, Configuration: Debug x64 ------
1>Project1.cpp
1>C:\Users\Admin\source\repos2\Project1\Project1.cpp(6,19): error C2027: use of undefined type 'Color'
1>C:\Users\Admin\source\repos2\Project1\Project1.cpp(2): message : see declaration of 'Color'
1>C:\Users\Admin\source\repos2\Project1\Project1.cpp(6,24): error C2065: 'Green': undeclared identifier
1>Done building project "Project1.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
答案 0 :(得分:1)
您正在这样做:
不透明枚举声明:定义枚举类型,但不定义其枚举数:在此声明之后,该类型是完整类型且其大小已知。