Enum问题,还是我的理解?

d1l*_*ger 2 c++

我正在添加一个枚举类型到目前为止我学到的很少的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);

}
Run Code Online (Sandbox Code Playgroud)

你能不能像任何其他类型一样设置枚举类型的变量?或者我错过了一些简单的东西?我得到的错误是在main中的"set"期间,表示R_LEFT未定义.这很奇怪,因为如果我想将它传递给方法,我通常不首先声明"int"...

Jos*_*eld 8

枚举在您的类中定义Rectangle.你需要符合资格R_LEFT:

pRect.setRect(Rectangle::R_LEFT);
Run Code Online (Sandbox Code Playgroud)