Back to questions
Junior — Middle
79
Можно ли в C++ определить класс, содержащий только чисто виртуальные функции, и при этом его нельзя создать напрямую?
Companies where asked
ГК Адепт
Answer from AI
sobes.tech AI
Да, в 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();
}