Страницы

Поиск по вопросам

вторник, 4 июня 2019 г.

Присвоение значения переменной при объявлении в классе

Есть класс:
class A { public: static int count;
A() { count++; // При создании каждого объекта эта переменная должна увеличиваться } };
Надо присвоить значение этой переменной 0, до вызова конструктора. Но если это сделать вот так:
static int count = 0;
То компилятор ругается. Как обойтись в такой ситуации?


Ответ

Просто надо правильно определить эту переменную вне класса
class A { public: static int count;
A() { count++; // При создании каждого объекта эта переменная должна увеличиваться } };
//... int A::count = 0;
Вы также можете опустить инициализатор, так как переменная в любом случае будет инициализирована нулем:
int A::count;
Если определение класса помещено в заголовочный файл, то определение статической переменной нужно поместить в один из программных модулей.

Комментариев нет:

Отправить комментарий