Есть класс:
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;
Если определение класса помещено в заголовочный файл, то определение статической переменной нужно поместить в один из программных модулей.
Комментариев нет:
Отправить комментарий