Sobes.tech
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.