Поделиться через


Абстрактные классы (C++)

Абстрактные классы являются выражения обобщенных представлений из которых более конкретные классы могут наследовать.Невозможно создать объект типа абстрактного класса. однако можно использовать указатели и ссылок на типы абстрактного класса.

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

Виртуальная функция объявлена как "чистых" с помощью чисто-описатель синтаксис (описанный в пределах реализация протокола класса).Рассмотрим примере представлено в пределах Виртуальные функции.Назначение класса Account предоставить общую функциональность, но объекты типа Account слишком общие, чтобы быть полезны.Следовательно, Account хорошим кандидатом для абстрактного класса:

// deriv_AbstractClasses.cpp
// compile with: /LD
class Account {
public:
   Account( double d );   // Constructor.
   virtual double GetBalance();   // Obtain balance.
   virtual void PrintBalance() = 0;   // Pure virtual function.
private:
    double _balance;
};

Единственная разница между этим и предыдущим объявлением одним то PrintBalance объявляет с чисто описателем (= 0).

См. также

Ссылки

Производные классы