我得到了我的主要课程游戏:
Game.h:
class Game{
public:
Galaxian galaxians[6][10];
};
Game.cpp:
没有什么有趣的,只是填充类数组的变量
Galaxian.h:
class Galaxian{
public:
void update();
};
Galaxian.cpp:
这是我的问题:我想从Game类访问galaxians数组,但我不知道怎么做!当我尝试游戏:: galaxians时,我收到错误“非静态成员引用必须与特定对象相关”
我想要完成的是我可以循环播放该数组并更改其中每个键的值。
我该怎么做?
答案 0 :(得分:2)
这是因为galaxians
成员是实例成员,而不是类(即非静态)成员。您应该(1)在您需要访问Game
的位置创建galaxians
的实例,或者(2)使galaxians
成为静态成员。
如果您决定采用第一种方式,请考虑将Game
设为单身;如果您决定采用第二种方式,除了在头文件中声明galaxians
之外,不要忘记在cpp文件中定义您的static
数组。
答案 1 :(得分:1)
非static
成员绑定到类的实例,而不是类本身。这是一般的OO,不是C ++特有的。因此,您要么绑定对象的访问权限,要么将成员绑定到类:
Game g; //create an object of the class
g.galaxians; //access the member through the object
或
class Game{
public:
static Galaxian galaxians[6][10]; //bind the member to the class
};
//...
Game::galaxians; //access it through the class
您选择哪一个取决于您的逻辑。
答案 2 :(得分:1)
您需要访问Game
的实例:
Game g;
g.galaxians[3][4] = ....;