Sobes.tech
Junior — Middle

Белгилүү бир класстын түзүлүүчү үлгүлөрүнүн санын чектөө кандай болот?

sobes.tech AI

AIден жооп

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тен ашык объект түзүүгө аракет кылганда, чыгуу болот.