Счетчик объектов в C++
Статическое поле удобно для счетчика объектов: конструктор увеличивает общее число, деструктор уменьшает, и в любой момент видно, сколько экземпляров сейчас живет.
Поле count объявляют в классе, определяют снаружи
с нулем, в конструкторе пишут ++count, в деструкторе -
--count. Запишем класс User:
#include <iostream>
class User {
public:
static int count;
User() {
++count;
}
~User() {
--count;
}
};
int User::count = 0;
Создадим пару объектов во внутреннем блоке и выведем поле до и после:
int main() {
std::cout << User::count << "\n";
{
User user1;
User user2;
std::cout << User::count << "\n";
}
std::cout << User::count << "\n";
return 0;
}
Сделайте класс Widget со статическим полем
live и таким же учетом в конструкторе и
деструкторе. Создайте три объекта во внутреннем блоке
и выведите поле live внутри блока и после него.