Читайте также: |
|
Абстрактным классом называется класс, в котором есть хотя бы одна чистая (пустая) виртуальная функция. Абстрактные классы:реализуют вершину в иерархии наследования; не могут использоваться для создания объектов (попытка создания объекта порождает ошибку!); могут (и используются) для объявления указателей, которые впоследствии используются для работы с объектами
производных классов.Чистой виртуальной называется компонентная функция, которая имеет следующее определение:virtual тип имя_функции (список_формальных_параметров) = 0;
В этой записи конструкция «= 0» называется «чистый спецификатор». Пример описания чистой виртуальной функции:virtual void fpure (void) = 0;
Чистая виртуальная функция «ничего не делает» и недоступна для вызовов. Ее назначение - служить основой для подменяющих ее функций в производных классах. Исходя из этого становится понятной невозможность создания самостоятельных объектов абстрактного класса. Абстрактный класс может использоваться только в качестве базового для производных классов. При создании объектов такого производного класса в качестве подобъектов создаются объекты базового абстрактного класса. Пример:
class B { protected:
virtual void f (int) = 0;
void s(int);};
class D: public B {
...
Дата добавления: 2015-10-02; просмотров: 60 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
При множественном наследовании один и тот же базовый класс может быть включен в производный класс одновременно несколько раз, причем и как виртуальный, и как не виртуальный. | | | Void f (int); |