Junior — Middle
Como pode definir um limite no número de instâncias de uma classe específica que são criadas?
sobes.tech IA
Resposta da IA
Para limitar o número de instâncias de uma classe em C++, pode usar uma variável estática contador dentro da classe, que aumenta ao criar um objeto e diminui ao destruí-lo. No construtor, verifica-se se o limite foi ultrapassado, e se for o caso, lança-se uma exceção ou impede-se de outra forma a criação de uma nova instância.
Exemplo:
#include <stdexcept>
class LimitedInstances {
static int count;
static const int max_instances = 5;
public:
LimitedInstances() {
if (count >= max_instances) {
throw std::runtime_error("Limite de instâncias excedido");
}
++count;
}
~LimitedInstances() {
--count;
}
};
int LimitedInstances::count = 0;
Assim, ao tentar criar mais de 5 objetos, será lançada uma exceção.