Junior — Middle
111
Ar C++ egzistuoja sąsajos koncepcija, panaši į kitų programavimo kalbų?
Įmonės kur klausė
ГК Адепт
Atsakymas iš 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;
}
};
Такой абстрактный класс нельзя инстанцировать напрямую, и он задаёт контракт, который должны реализовать наследники. Это и есть аналог интерфейса.