枚举问题,还是我的理解

Enum issues, or is it my understanding?

本文关键字:我的 问题 枚举      更新时间:2023-10-16

我将枚举类型添加到目前为止我所学的很少的c++中,但是设置它有麻烦…我是不是漏掉了一些基础知识?

class Rectangle
{
public:
    Rectangle();
    ~Rectangle();
    enum rectangle_directions_t {R_LEFT = 0, R_DOWN = 1, R_RIGHT= 2, R_UP = 3, R_NONE = 4};
    void setRect(rectangle_directions_t rec_dir) {rectangle_direction = rec_dir;}

private:
    rectangle_directions_t rectangle_direction;
};
int main()
{
    Rectangle pRect;
    pRect.setRect(R_LEFT);
}

不能像设置其他类型一样设置枚举类型的变量吗?还是我错过了一些简单的东西?我得到的错误是在main中的"set"期间,它说R_LEFT未定义。这很奇怪,因为如果我想把它传递给一个方法,我通常不会先声明一个"int"…

枚举在类Rectangle中定义。您需要限定R_LEFT:

pRect.setRect(Rectangle::R_LEFT);