Sobes.tech
Junior — Middle

Ma'lum bir sinfning yaratiladigan nusxalar soniga cheklov qanday belgilanishi mumkin?

sobes.tech AI

AIdan javob

C++ da sinfiyasining yaratiladigan nusxalar sonini cheklash uchun, sinf ichida statik hisoblagich o'zgaruvchini ishlatish mumkin, u obyekt yaratilganda oshadi va yo'q qilinayotganda kamayadi. Konstruktor ichida, limit oshib o'tganmi, tekshiriladi va agar shunday bo'lsa, istisno chiqariladi yoki boshqa tarzda yangi nusxa yaratish oldi olinadi.

Misol:

#include <stdexcept>

class LimitedInstances {
    static int count;
    static const int max_instances = 5;
public:
    LimitedInstances() {
        if (count >= max_instances) {
            throw std::runtime_error("Sinf nusxalarining limiti oshdi");
        }
        ++count;
    }
    ~LimitedInstances() {
        --count;
    }
};

int LimitedInstances::count = 0;

Shu tarzda, 5 tadan ortiq obyekt yaratishga harakat qilinganda, istisno chiqariladi.