Sobes.tech
Junior — Middle

Comment peut-on définir une limite sur le nombre d'instances d'une classe spécifique qui sont créées?

sobes.tech IA

Réponse de l'IA

Чтобы ограничить число создаваемых экземпляров класса в 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 объектов будет выброшено исключение.