Junior — Middle
137
Van-e C++-ban interfész fogalom, hasonló más programozási nyelvekhez?
Cégeket kérdeztek
ГК Адепт
Válasz az MI-től
sobes.tech MI
В 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;
}
};
Такой абстрактный класс нельзя инстанцировать напрямую, и он задаёт контракт, который должны реализовать наследники. Это и есть аналог интерфейса.