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