Funkcje i zmienne statyczne C ++

Uczę się C ++, wykonując małą symulację robota i mam problemy ze statycznymi funkcjami składowymi wewnątrz klas.

Mam zdefiniowaną klasę Environment:

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
};

Następnie w konstruktorze inicjalizuję roboty i przeszkody w ten sposób:

numOfRobots = 1; // How many robots to draw
numOfObstacles = 1;
robots = new Robot[numOfRobots];
obstacles = new Obstacle[numOfObstacles];

Oto przykład funkcji statycznej, która używa tych zmiennych:

void Environment::display(void) {
    // Draw all robots
    for (int i=0; i<numOfRobots; i++) {
        robots[i].draw();
    }
}

Kiedy próbuję się skompilować, otrzymuję komunikaty o błędach, takie jak

error: invalid use of member ‘Environment::robots’ in static member function

Próbowałem zrobić numOfRobots, numOfObstacles, roboty i przeszkodystatyczny, ale wtedy miałem błędy takie jak

error: undefined reference to 'Environment::numOfRobots'

Byłbym bardzo wdzięczny za to, że ktoś mógłby mi wyjaśnić, co robię źle. Dziękuję Ci!

questionAnswers(6)

yourAnswerToTheQuestion