Практикум по объектно-ориентированному программированию на базе языка с++ Учебно-методическое пособие



Pdf көрінісі
бет24/44
Дата21.02.2024
өлшемі0.49 Mb.
#492719
түріПрактикум
1   ...   20   21   22   23   24   25   26   27   ...   44
ООП С

Абстрактным классом называется класс, в котором есть хотя бы 
одна чистая виртуальная функция. Чистой виртуальной функцией назы-
вается функция, которая имеет определение: 
 
virtual тип имя_функции (список_формальных_параметров) = 0; 
Чисто виртуальный метод должен переопределяться в производ-
ном классе (возможно опять как чисто виртуальный). 
Класс, содержащий хотя бы один чисто виртуальный метод, назы-
вается абстрактным. Абстрактные классы предназначены для представле-
ния общих понятий, которые предполагается конкретизировать в произ-
водных классах. Абстрактный класс может использоваться только в каче-
стве базового для других классов. Объекты абстрактного класса создавать 
нельзя. При определении абстрактного класса необходимо иметь в виду 
следующее:
 абстрактный класс нельзя использовать при явном приведении типов
для описания типа параметра и типа, возвращаемого функцией значения; 
 допускается объявлять указатели и ссылки на абстрактный класс, если 
при инициализации не требуется создавать временный объект; 
если класс, производный от абстрактного, не определяет все чисто вир-
туальные функции, он также является абстрактным. 
44 
Ключи доступа при наследовании. При описании класса в его
заголовке перечисляются все классы, являющиеся для него базовыми. 
Возможность обращения к элементам этих классов регулируется с помо-
щью ключей доступа privateprotected и public
 
class Имя : [private | protected | public] Базовый_класс 
{тело класса}; 
 
Если базовых классов несколько, они перечисляются через запя-
тую. Ключ доступа может стоять перед каждым классом. 
 
class A {...};
class В {...}; 
class С {...}; 
class D: A, protected В, public С {...}; 
 
По умолчанию для классов используется ключ доступа private,
а для структур – publiс. Кроме этого, доступность в производном классе 
регулируется ключом доступа к базовому классу. Этот ключ указывается 
в объявлении производного класса и определяет вид наследования: public
private или protected
 Открытое наследование сохраняет статус доступа для всех элементов 
базового класса. 
 Защищенное – понижает статус доступа всех элементов базового 
класса со статусом public до protected
 Закрытое – понижает статусы доступа всех элементов базового класса 
со статусом public и protected до private.
Производные классы наследуют элементы базового класса Person
но некоторые функции будут выполняться в каждом классе по-своему. 
Например, функция show() будет для каждого класса выводить его соб-
ственные поля. Для вызова метода предка из потомка используется опе-
рация доступа к области видимости «::». 


Достарыңызбен бөлісу:
1   ...   20   21   22   23   24   25   26   27   ...   44




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет