以下是我的.h
#ifndef GRID_H_
#define GRID_H_
#include <array>
namespace game{
class Grid{
public:
static const int dimension = 10;
std::array<int, dimension*dimension> grid;
Grid();
int get_cell(int x, int y);
};
}
#endif /* GRID_H_ */
以下是我的.cpp
#include "Grid.h"
namespace game {
Grid::Grid() {
// TODO Auto-generated constructor stub
}
int get_cell(int i, int j){
return (std::get<(i*dimension+j)>grid);
}
}
编译器说:
错误:'dimension' was not declared in this scope
。
我试图添加范围解析算子游戏::
,但是没有用。如何从头文件访问此常量?
它不应该是一个全局公共变量吗?并且include应该从头文件复制并粘贴代码。我不明白这是怎么回事。对不起这个基本问题;我是C ++ /的新手
您必须使用类名来访问static
成员:
int Grid::get_cell(int i, int j){
return (std::get<(i* Grid::dimension +j)>grid);
}
注意: ::
运算符是指全局范围。但是dimension
是在类范围内,而不是全局范围。
您对的使用std::get
是错误的。它应该是
return (std::get< /*a constant value*/>(grid)); //
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句