Интерфейс в cpp - PullRequest
       5

Интерфейс в cpp

3 голосов
/ 07 августа 2011

Я хочу создать интерфейс в cpp, чтобы любой класс реализовывал этот класс, тогда этот класс должен реализовывать функции родительского класса.если все функции не реализованы, то это должно показать ошибку.

class parent {   // interface class
   public :
      virtual void display();
}
class base : public parent {
    void display(); // this method must be implemented in this class 
}

, пожалуйста, помогите мне для этого типа наследования в c ++.

Ответы [ 3 ]

9 голосов
/ 07 августа 2011

Используйте чисто виртуальную функцию-член:

virtual void display() = 0;

Это делает класс абстрактным (вы не можете создавать его экземпляры), и любой неабстрактный производный класс должен реализовывать такие функции.

Вот ссылка на Википедию с более формальным определением: http://en.wikipedia.org/wiki/Virtual_function#Abstract_classes_and_pure_virtual_functions

7 голосов
/ 07 августа 2011

Только одно изменение

class parent {   // interface class
   public :
      virtual void display() = 0;
}

Это называется чистой виртуальной функцией в C ++.

0 голосов
/ 14 февраля 2014

вы можете использовать абстрактный класс (или чисто виртуальный класс):

class AB {
public:
    virtual void f() = 0;
};

абстрактный класс можно использовать в cpp-подобном интерфейсе в java / c #, хотя они были разными с точки зрения компилятора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...