【发布时间】:2017-04-21 18:05:10
【问题描述】:
这是我目前的程序 头文件
#ifndef BOARD_H
#define BOARD_H
class Board {
enum class EnemyPiece {HIT, MISS, EMPTY};
enum class PlayerPiece {AIRCRAFT, BATTLESHIP, CRUISER, SUBMARINE, PATROL, EMPTY};
private:
PlayerPiece playerboard[100];
PlayerPiece enemyboard[100];
public:
Board();
void reset(PlayerPiece *a , PlayerPiece *b);
};
#endif
这是cpp文件
#include <iostream>
#include "Board.h"
using namespace std;
Board::Board()
{
reset(playerboard, enemyboard);
}
void Board::reset(PlayerPiece *year, PlayerPiece *month)
{
std::cout << static_cast<std::underlying_type<PlayerPiece>::type>(PATROL) << std::endl;
}
在成员函数中,我尝试强制转换枚举类型,但是无论我将减速完成的头文件放在哪里,我都会不断得到 “PATROL”未在此范围内声明 有什么我做错了吗?枚举类是否应该放在其他地方?
【问题讨论】:
-
使用
PlayerPiece::PATROL。 -
别再使用大写字母了,这种可怕的黑客攻击已经没有必要了。
-
#ifndef BOARD_H #define BOARD_H #ifndef BOARD_H... 应该如何工作?你的枚举定义是私有的,怎么会有人调用reset函数? -
为什么你有两倍的
#ifndef BOARD_H?这是复制/粘贴错误还是真的存在于您的文件中?无论如何,您必须删除第二次出现.. -
抱歉第二次出现,复制时打错了。