0

枚举在全局范围内声明如下,PSLGVertex::PSLGVertex() 构造函数抱怨最后一个参数“PSLGVertexType”不是类或命名空间”

我在这里做错了什么?

enum PSLGVertexType {
REFLEX_VERTEX,
CONVEX_VERTEX,
MOVING_STEINER_VERTEX,
MULTI_STEINER_VERTEX,
RESTING_STEINER_VERTEX,
OTHER_VERTEX
};

构造函数

PSLGVertex::PSLGVertex() : mark(false), oriPosition(0, 0), speed(0, 0), 
startTime(0.0),firstin(NULL), firstout(NULL),type(PSLGVertexType::OTHER_VERTEX)
4

2 回答 2

1

您正在使用PSLGVertexType::,它告诉编译器PSLGVertexType是类/结构或命名空间,但两者都不是。

使用普通OTHER_VERTEX的 .

于 2013-10-29T07:02:45.497 回答
0

在 C++-03 中,enum成员被放置在封闭范围内。所以不要说

 PSLGVertexType::OTHER_VERTEX

而只是

 OTHER_VERTEX

在 C++11 中,您的代码会很好,因为成员被放置在封闭范围(为了向后兼容)和内部枚举范围中。

C++11 也有新的作用域枚举,你可以在 Wikipedia 上阅读。

于 2013-10-29T07:03:03.697 回答