Sobes.tech
Назад к вопросам
Junior — Middle
104

Каким образом можно задать лимит на число создаваемых экземпляров определенного класса?

Ответ от нейросети

sobes.tech AI

Чтобы ограничить число создаваемых экземпляров класса в C++, можно использовать статическую переменную-счётчик внутри класса, которая увеличивается при создании объекта и уменьшается при его уничтожении. В конструкторе проверяется, не превышен ли лимит, и при необходимости выбрасывается исключение или иным образом предотвращается создание нового экземпляра.

Пример:

#include <stdexcept>

class LimitedInstances {
    static int count;
    static const int max_instances = 5;
public:
    LimitedInstances() {
        if (count >= max_instances) {
            throw std::runtime_error("Превышен лимит экземпляров класса");
        }
        ++count;
    }
    ~LimitedInstances() {
        --count;
    }
};

int LimitedInstances::count = 0;

Таким образом, при попытке создать более 5 объектов будет выброшено исключение.