Junior — Middle
117
Կա՞ C++-ում ինտերֆեյսի կոնցեպցիա, նման այն մյուս ծրագրավորման լեզուներում։
Ընկերությունները, որտեղ հարցրել են
ГК Адепт
Պատասխան AI-ից
sobes.tech AI
В C++ нет отдельной ключевой конструкции «interface», как в Java или C#. Однако аналог интерфейса достигается с помощью абстрактных классов, которые содержат только чисто виртуальные функции (pure virtual functions).
Пример интерфейса в C++:
class IShape {
public:
virtual double area() const = 0; // чисто виртуальная функция
virtual ~IShape() {} // виртуальный деструктор
};
class Circle : public IShape {
double radius;
public:
Circle(double r) : radius(r) {}
double area() const override {
return 3.14159 * radius * radius;
}
};
Такой абстрактный класс нельзя инстанцировать напрямую, и он задаёт контракт, который должны реализовать наследники. Это и есть аналог интерфейса.