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.