[英]C++ enum type as a function
我正在尝试建立FlipIt游戏程序的C ++代码。 我有一个头文件和一个.cpp文件。 在头文件中,我有一个flipit类,其中的一个功能是枚举类型的功能。 例如在头文件FlipIt.h中:
(枚举声明)
enum Color { clear_ = false, solid_ = true };
(功能)
Color fetch( int row, int col ) const;
(在FlipIt.cpp文件中,这是我在类中实现的功能)
int FlipIt::fetch( int row, int col ) const
当我这样做时,VS2010说IntelliSense:声明与“ FlipIt :: Color FlipIt :: fetch(int row,int col)const”不兼容。
这是什么意思?
但是Color
不是int
。 它是enum
,具有某种基础类型(取决于编译器),但无论如何它是另一种类型。
这意味着您在方法声明中承诺的FlipIt::Color
与实现中提供的类型不同。 enum
不是int
。
尝试
FlipIt::Color FlipIt::fetch(int row, int col) const { }
为您的实施。
您必须区分在哪个名称空间中定义的枚举类型。如果您的枚举仅在头文件中定义,而不在cpp文件中定义。 您包含头文件,链接器可以找到定义的类型,如果您在类中定义,则必须添加类前缀。 链接器可以找到类型的定义。 因此,如果您的枚举类型是在全局区域中定义的,则没有问题。 如果在类中定义,则必须使用“ Class :: Type”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.