相关疑难解决方法(0)

如何在C++中使用枚举

假设我们有enum以下内容:

enum Days {Saturday, Sunday, Tuesday, Wednesday, Thursday, Friday};
Run Code Online (Sandbox Code Playgroud)

我想创建一个这样的实例enum并用适当的值初始化它,所以我做:

Days day = Days.Saturday;
Run Code Online (Sandbox Code Playgroud)

现在我想用现有enum值检查我的变量或实例,所以我这样做:

if (day == Days.Saturday)
{
    std::cout << "Ok its Saturday";
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个编译错误:

错误:'.'之前的预期primary-expression 代币

所以要说清楚,说:有什么区别:

if (day == Days.Saturday) // Causes compilation error
Run Code Online (Sandbox Code Playgroud)

if (day == Saturday)
Run Code Online (Sandbox Code Playgroud)

这两个实际上是指什么,一个是好的,一个导致编译错误?

c++ enums

202
推荐指数
9
解决办法
40万
查看次数

获取"枚举不是类或命名空间"错误 - C++

我在头文件中声明了一个枚举(称为Direction):

enum Direction {LEFT, RIGHT};
Run Code Online (Sandbox Code Playgroud)

然后,我有一个构造函数,它接受一个Direction值并将其设置为另一个Direction变量(stringDirection).

bool InformationWidget::move(Direction direction){
    stringDirection=direction;

return true;
}
Run Code Online (Sandbox Code Playgroud)

最后,我有一个if语句来检查它的值:

if (stringDirection == Direction::RIGHT)
Run Code Online (Sandbox Code Playgroud)

这就是我收到错误的地方,那个if语句..任何想法?我试着环顾前面的线程,但没有找到任何有用的东西.

谢谢!

编辑:

这是我的文件:

Widget.h

enum class Direction {LEFT, RIGHT};

class Widget {
public:
     virtual bool...
     ...
};
Run Code Online (Sandbox Code Playgroud)

information.h

class InformationWidget: public Widget {
public:
    ...
    Direction stringDirection;
    ...
};
Run Code Online (Sandbox Code Playgroud)

information.cpp

void InformationWidget::show(){

...

if (stringDirection == LEFT) {
... }
}
Run Code Online (Sandbox Code Playgroud)

c++ enums

6
推荐指数
1
解决办法
2311
查看次数

标签 统计

c++ ×2

enums ×2