gpt4 book ai didi

c++ - 如何访问头文件中定义的常量?

转载 作者:行者123 更新时间:2023-11-30 01:52:53 33 4
gpt4 key购买 nike

下面是我的.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);
}
}

编译器说:

错误:未在此范围内声明“维度”

我尝试添加范围解析运算符 game::,但没有成功。我如何从头文件访问这个常量?

不应该是全局公共(public)变量吗?!并且包含应该复制并粘贴头文件中的代码。我不明白哪里出了问题。抱歉这个基本问题;我是 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)); // 

关于c++ - 如何访问头文件中定义的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23864942/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com