Я решал вопросы с хакерранками.Я столкнулся с вопросом о виртуальной функции, и меня попросили создать класс с именем Student .Этот класс должен иметь переменную int с именем cur_id (текущий идентификатор).Вот класс;
class Student: public Person{
public:
static int id;
Student(){
cur_id = ++id;
}
};
int Student::id = 0;
Меня попросили увеличить cur_id +1 при создании каждого нового объекта класса.Так что я решил увеличить cur_id
в конструкторе.Как видите, я объявил переменную static int
в классе как static int id
.Затем я хотел инициализировать его значение с ноль вне класса.Но когда я попробовал это как Student::id = 0;
, я не смог получить доступ к переменной id
.Мне нужно было еще раз указать его тип данных, как будто я снова объявляю переменную как int Student::id = 0;
.В чем причина этого, почему мне нужно объявлять статическую переменную два раза?Я знаю, что это вопрос новичка и может иметь простой ответ, но я не мог найти свой ответ в других темах.Заранее спасибо.