Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Синтаксис определения производного класса:
class cl3: atr1 cl1[, atr2 cl2]//cl1 - имя базового класса
{ //atr1 - атрибут наследования (private, public, protected)
... }
Атрибут наследования осуществляет управление доступом к элементам базового класса внутри производного класса. По умолчанию атрибут наследования - private.
Схема управления доступом в производном классе к наследуемым элементам имеет вид табл. 3.1.
Таблица 3.1.
Атрибут наследования | Атрибут доступа в базовом классе | Прямой доступ в производном классе к наследуемым элементам (по имени элем.) |
private | private protected public | private, доступа нет варианты: 1 private, но доступ есть 2 private, но доступ есть 2 |
protected | private protected public | private, доступа нет 1 protected, доступ есть 3 protected, доступ есть 3 |
public | private protected public | private, доступа нет 1 protected, доступ есть 4 public, доступ есть 4 |
В файл заголовков производного класса директивой #include необходимо включить файл заголовков базового класса.
Схема управления доступом на условном примере представлена в таблице 3.2.
Таблица 3.2.
class cl1 //баз. класс { private: int a1; void x1(); protected: int b1;void y1(); public: int c1; void z1(); }; | class cl2:public cl1//пр.кл { private: int a2; void x2(); protected: int b2;void y2(); public: int c2; void z2(); }; | class cl3:private cl1//пр.кл { private: int a3; void x3(); protected: int b3;void y3(); public: int c3; void z3(); }; |
Прямой доступ в cl1: a1, x1(), b1, y1(), c1, z1() | Прямой доступ в cl2: b1, y1(), c1, z1(), a2, x2(), b2, y2(), c2, z2() | Прямой доступ в cl3: b1, y1(), c1, z1(), a3, x3(), b3, y3(), c3, z3() |
Доступ из внеш.функций через объект (cl1 obj1): c1, z1() | Доступ из внеш.функций через объект (cl2 obj2): c1, z1(), c2, z2() | Доступ из внеш.функций через объект (cl3 obj3): c3, z3() |
Дата публикования: 2014-11-26; Прочитано: 198 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!