繁体   English   中英

C ++枚举类型作为函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM