Junior — Middle
Da li je moguće u C++ definisati klasu koja sadrži samo čisto virtuelne funkcije i koja se ne može direktno kreirati?
sobes.tech АИ
Одговор од АИ
Да, в 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();
}