Рубрики

C ++ | Статическое ключевое слово | вопрос 2

#include <iostream>

using namespace std;

  

class Player

{

private:

    int id;

    static int next_id;

public:

    int getID() { return id; }

    Player()  {  id = next_id++; }

};

int Player::next_id = 1;

  

int main()

{

  Player p1;

  Player p2;

  Player p3;

  cout << p1.getID() << " ";

  cout << p2.getID() << " ";

  cout << p3.getID();

  return 0;

}

(A) Ошибка компилятора
(Б) 1 2 3
(С) 1 1 1
(D) 3 3 3
(E) 0 0 0

Ответ: (Б)
Объяснение: Если переменная-член объявлена как статическая, все объекты этого класса имеют доступ к одному экземпляру этой переменной. Статические переменные иногда называют переменными класса, полями класса или полями класса, потому что они не принадлежат конкретному объекту; они принадлежат к классу.

В приведенном выше коде статическая переменная next_id используется для назначения уникального идентификатора всем объектам.

Тест на этот вопрос

Рекомендуемые посты:

C ++ | Статическое ключевое слово | вопрос 2

0.00 (0%) 0 votes