2013-12-11 1 views
-7

Я хочу знать о способе определения класса интерфейса в C++ этим подходом. Является ли это возможным? Я не хочу знать о создании интерфейса, но хочу знать об использовании абстрактного ключевого слова в C++.Можем ли мы объявить класс интерфейса, сделав все методы абстрактными, используя ключевое слово 'abstract' в классе на C++?

+5

В C++ ключевое слово 'abstract' отсутствует. И если вы хотите абстрактный класс, это класс, который не может быть инициализирован, просто используйте защищенный конструктор. –

+1

Существуют чистые виртуальные функции: '= 0',' abstract' is C# – yizzlez

+0

@BartekBanachewicz: Нет, абстрактный класс является одним с чистыми виртуальными функциями, которые должны быть переопределены, а не с защищенным конструктором. –

ответ

2

В C++ абстрактным классом является любой класс, который имеет как минимум 1 чистую виртуальную функцию.

C++ не имеет прямой поддержки интерфейсов, но вы можете сделать это, сделав все функции общедоступными, виртуальными и абстрактными и не имеющими элементов данных в классе.

2

В C++ интерфейс определяется следующим образом:

class Interface { 
public: 
    virtual ~Interface(); 
    virtual void aMethod() = 0; 
}; 

Примечание виртуального деструктора.

Смежные вопросы