Що таке Інтерфейси в C++?
Інтерфейси реалізуються через абстрактні класи, що містять суто віртуальні функції. Інтерфейси надають абстрактний набір методів, які класи мають реалізувати. Це забезпечує структурну однорідність у додатку, дозволяючи різним класам надавати спільний інтерфейс.
Оголошення інтерфейсу:
// Інтерфейс
class Drawable {
public:
// Чисто віртуальна функція (метод інтерфейсу)
virtual void draw() const = 0;
// Віртуальний деструктор
virtual ~Drawable() = default;
};
У цьому прикладі draw() є суто віртуальною функцією, що робить клас Drawable інтерфейсом. Інтерфейси не можуть створювати екземпляри.
Реалізація інтерфейсу в класі:
// Клас, що реалізує інтерфейс
class Circle : public Drawable {
public:
// Реалізація методу інтерфейсу
void draw() const override {
std::cout << "Drawing a circle." << std::endl;
}
};
Клас Circle успадковує від інтерфейсу Drawable і надає реалізацію методу draw().
Додаткові можливості:
- Множинне успадкування інтерфейсів:Класи можуть успадковувати від кількох інтерфейсів, надаючи реалізації для всіх відповідних методів.
- Інтерфейси як контракти:Використання інтерфейсів забезпечує ясні контракти між різними частинами програми, покращує читаність та забезпечує однорідність у структурі програми.
Коментарі