Sobes.tech
Junior — Middle

¿Cómo se puede establecer un límite en el número de instancias de una clase determinada que se crean?

sobes.tech AI

Respuesta de la 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 объектов будет выброшено исключение.