Junior — Middle
C++ da faqat tozalangan virtual funktsiyalarni o'z ichiga olgan va to'g'ridan-to'g'ri yaratilmaydigan sinfni aniqlash mumkinmi?
sobes.tech AI
AIdan javob
Ha, C++да фақат чист виртуал функцияларни ўз ичига олган классни аниқлаш мумкин ва бундай класс тўғридан-тўғри яратилиши мумкин эмас. Бундай класс абстракт класс деб аталади. У интерфейс ёки асосий класс сифатида хизмат қилади ва мерос олганлар барча чист виртуал функцияларни амалга ошириши керак.
Масалан:
class Interface {
public:
virtual void doSomething() = 0; // чист виртуал функция
virtual ~Interface() = default;
};
// Interface объектини тўғридан-тўғри яратиш мумкин эмас:
// Interface obj; // компиляция хатоси
class Implementation : public Interface {
public:
void doSomething() override {
// амалга ошириш
}
};
int main() {
Implementation impl;
impl.doSomething();
}