Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Class circ

Множественное наследование и виртуальные базовые классы

Класс называют непосредственным (прямым) базовым классом (прямой базой), если он входит в список базовых при определении класса. В то же время для производного класса могут существовать косвенные или непрямые предшественники, которые служат базовыми для классов, входящих в список базовых. Если некоторый класс а яв­ляется базовым для B иB есть база для с, то класс в является непосред­ственным базовым классом для с, а класс а - непрямой базовый класс для с (рис. 10.3). Обращение к компоненту ха, входящему в а и уна­следованному последовательно классами B и C, можно обозначить в классе с либо как А::ха, либо как В::ха. Обе конструкции обеспечи­вают обращение к элементу ха класса а.

Рис. 10.3. Прямое и косвенное наследование классов

Иерархию производных классов удобно представлять с помощью направленного ациклического графа (НАГ), где стрелкой изображают отношение "производный от". Производные классы принято изображать ниже базовых. Именно в таком порядке их объявления рассмат­ривает компилятор и их тексты размещаются в листинге программы. Класс может иметь несколько непосредственных базовых классов, т.е. может быть порожден из любого числа базовых классов, например,

class X1 {... }; class Х2 {... }; class ХЗ {... }; class Y1: public X1, public X2, public X3 {... };

Наличие нескольких прямых базовых классов называют множественным наследованием. В качестве примера рассмотрим производный класс "окружность, вписанная в квадрат". Базовыми классами будут: окружность (circ) и квадрат (square). Приведем вначале их определения:

//CIRC.CPP - определение класса "окружность"

#include <graphics.h>

(int xc, ус, // Координаты центра

re; // Радиус окружности

public:

// Конструктор:

circ(int xi, int yi, int ri)

{ xc = xi; yc = yi; re = ri; }

// Изобразить окружность на экране:

void show ()

{ circle(xc,ус,re); }

// Убрать с экрана изображение окружности:

void hide()

{ int bk, cc;

bk = getbkcolor(); // Цвет фона

cc = getcolor(); // Цвет изображения

setcolor(bk); // Сменить цвет рисования

// Рисуем окружность цветом фона:

circle(xc,ус,re);

// Восстановить цвет изображения:

setcolor(cc); }

};

//SQUARE.CPP - определение класса "квадрат"

#include <graphics.h>

<== предыдущая лекция | следующая лекция ==>
Putimage(xl,yl,pnt,op) | Void show(void)
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 563; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.