Как реализовать интерфейс в c++?

Пользователь

от sylvester , в категории: JavaScript , 6 месяцев назад

Как реализовать интерфейс в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от otha_marks , 6 месяцев назад

@sylvester 

Для реализации интерфейса в C++ можно использовать механизм виртуальных функций и классов. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Определение интерфейса
class Interface {
public:
    virtual void doSomething() = 0;  // Виртуальная функция без реализации
    virtual int calculate(int a, int b) = 0;
};

// Реализация интерфейса
class Implementation : public Interface {
    // Виртуальные функции должны быть реализованы в классе-наследнике
    void doSomething() override {
        // Реализация функции
    }

    int calculate(int a, int b) override {
        // Реализация функции
        return a + b;
    }
};

// Использование интерфейса
int main() {
    Interface* obj = new Implementation(); // Создание объекта класса наследника интерфейса
    obj->doSomething();  // Вызов виртуальной функции
    int result = obj->calculate(5, 3); // Вызов виртуальной функции с параметрами
    delete obj; // Удаление объекта
    return 0;
}


В данном примере Interface является абстрактным классом, так как содержит виртуальные функции без реализации. Класс Implementation наследует интерфейс Interface и реализует его функции.


Чтобы использовать интерфейс, создается указатель на интерфейсный класс, который может указывать на объекты классов, реализующих данный интерфейс. Методы интерфейса вызываются через указатель на интерфейсный класс.


Обратите внимание на ключевое слово override, которое указывает, что данная функция переопределяет виртуальную функцию из базового класса.


Помимо этого, также можно использовать библиотеку Boost для реализации интерфейсов в C++.