-2

GlobalGameEnums.h に列挙型を作成しました。クラスで宣言した Board.h にこのヘッダーを含めましたが、列挙値を使用できません。

GlobalGameEnums.h:

#ifdef GLOBALGAMEENUMS_H
#define GLOBALGAMEENUMS_H

enum class e_Side
{
    Right,
    Left
};

#endif

そして Board.h:

#ifndef BOARD_H
    .
    .
    #include "GlobalGameEnums.h"

    class Board
    {
    public:
    Board(int i_boardSize, int i_lowBound, int i_highBound);
    ~Board();

    int MakePlayerMove(enum e_Side i_sideTaken )
    {
        switch (i_sideTaken)
        {
        case e_Side::Left:
            break;
        case e_Side::Right:
            break;
        }
    }

    private:
    std::vector<Cell> m_cellVector;
    };

#endif

メソッド MakePlayerMove の宣言では e_Side タイプを認識しますが、メソッド本体では Left/Right ( Error: enum "e_Side" has no member "Left") を使用するとエラーが発生します。

多くの構成を試し、古いソリューションを検索しましたが、機能させることができませんでした。

4

2 に答える 2

5

列挙型ヘッダーのヘッダー ガードが間違っています。#ifndef の代わりに #ifdef があります。

于 2013-05-13T18:27:43.387 に答える