2

これまでに学んだ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);

}

他の型のように列挙型の変数を設定するだけではいけませんか?それとも私は何か簡単なものが欠けていますか?私が得るエラーは、R_LEFTが未定義であるというメインの「設定」中に発生します。メソッドに渡したい場合、通常は最初に「int」を宣言しないので、これは奇妙なことです...

4

1 に答える 1

8

列挙はクラス内で定義されますRectangle。あなたは資格を得る必要がありますR_LEFT

pRect.setRect(Rectangle::R_LEFT);
于 2013-03-13T12:00:17.787 に答える