我正在通过制作一个小型机器人模拟来学习 C++,但我在使用类中的静态成员函数时遇到了问题。
我的环境类定义如下:
class Environment {
private:
int numOfRobots;
int numOfObstacles;
static void display(); // Displays all initialized objects on the screen
public:
Robot *robots;
Obstacle *obstacles;
// constructor
Environment();
static void processKeySpecialUp(int, int, int); // Processes the keyboard events
};
然后在构造函数中初始化机器人和障碍物,如下所示:
numOfRobots = 1; // How many robots to draw
numOfObstacles = 1;
robots = new Robot[numOfRobots];
obstacles = new Obstacle[numOfObstacles];
这是使用这些变量的静态函数的示例:
void Environment::display(void) {
// Draw all robots
for (int i=0; i<numOfRobots; i++) {
robots[i].draw();
}
}
当我尝试编译时,我收到错误消息,例如
error: invalid use of member ‘Environment::robots’ in static member function
我尝试制作 numOfRobots、numOfObstacles、robots 和障碍物static,但后来我遇到了类似的错误
error: undefined reference to 'Environment::numOfRobots'
我将不胜感激有人可以解释我做错了什么。谢谢!