КАТЕГОРИИ: Архитектура-(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>
Дата добавления: 2014-01-11; Просмотров: 590; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |