Junior — Middle
129
Existe-t-il en C++ un concept d'interface similaire à celui d'autres langages de programmation?
Entreprises à qui on a demandé
ГК Адепт
Réponse de l'IA
sobes.tech IA
В 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;
}
};
Такой абстрактный класс нельзя инстанцировать напрямую, и он задаёт контракт, который должны реализовать наследники. Это и есть аналог интерфейса.