Студопедия
МОТОСАФАРИ и МОТОТУРЫ АФРИКА !!!


Авиадвигателестроения Административное право Административное право Беларусии Алгебра Архитектура Безопасность жизнедеятельности Введение в профессию «психолог» Введение в экономику культуры Высшая математика Геология Геоморфология Гидрология и гидрометрии Гидросистемы и гидромашины История Украины Культурология Культурология Логика Маркетинг Машиностроение Медицинская психология Менеджмент Металлы и сварка Методы и средства измерений электрических величин Мировая экономика Начертательная геометрия Основы экономической теории Охрана труда Пожарная тактика Процессы и структуры мышления Профессиональная психология Психология Психология менеджмента Современные фундаментальные и прикладные исследования в приборостроении Социальная психология Социально-философская проблематика Социология Статистика Теоретические основы информатики Теория автоматического регулирования Теория вероятности Транспортное право Туроператор Уголовное право Уголовный процесс Управление современным производством Физика Физические явления Философия Холодильные установки Экология Экономика История экономики Основы экономики Экономика предприятия Экономическая история Экономическая теория Экономический анализ Развитие экономики ЕС Чрезвычайные ситуации ВКонтакте Одноклассники Мой Мир Фейсбук LiveJournal Instagram

Void main ( ). a= getbkcolor ( ); //функция возвращает цвет фона




Void hide ( )

{int a ,b; int t = len/2;

a= getbkcolor ( ); //функция возвращает цвет фона

b= getcolor ( ); //функция возвращает цвет символов и линий

setcolor (a);

rectangle (x-t, y-t, x+ t, y+ t);// рисуем квадрат цветом фона

setcolor (b);// восстанавливаем цвет символов

}

void move ( int xn, int yn)

{ hide( );

x= xn; y= yn;

show(); }

} ;

// множественное наследование

#include <conio.h.

#include ”circ.cpp”

#include “square.cpp”

class cirsqu: public circ, public square {

// производный класс двух базовых классов, нет своих данных

public:

cirsqu( int xi, int yi, int ri) :// конструктор, параметры для

// инициализации данных базовых классов

circ(xi, yi, ri), //явно вызываются конструкторы

square(xi, yi, 2*ri) { }// базовых классов

//так чтобы координаты центра окружности и квадрата совпадали,

// а сторона квадрата была равна диаметру окружности

void show ()

{circ::show(); square::show();}

void hide()

{ circ::hide(); square::hide();}

void move(int xn,int yn)

{circ::move(xn,yn); square::move(xn,yn);}

};

{int d=DETECT, m;

initgraph(&d, &m, "D:\\Borlandc\\BGI" );

int errorcode=graphresult();

if(errorcode!=grOk){cout<<"Ошибка " ; exit(0);}

cirsqu a1(100,100,50);

cirsqu a2(400,300,30);

a1.show(); getch();

a2.show(); getch ();

a2.move(50,50); getch();

a2.hide(); getch();

a1.hide(); getch();

closegraph();

}

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

При множественном наследовании класс не может быть прямым базовым более одного раза. Однако класс может быть неоднократно косвенно базовым.

class A { // самый верхний базовый класс А

protected :

int x;

. . . } ;

class B : public A {// класс В, производный от А

. . . } ;

class C : public A {// класс С, производный от А

. . . } ;

class D : public B , public C {// класс D , производный и от В и от С

. . . } ;

A A

B C

D

В этом случае происходит дублирование или “размножение” базового класса при множественном наследовании.

В объект класса D входят все составляющие базовых классов B и Cи следовательно члены класса А войдут в него дважды, как составляющие базового класса В и как составляющие базового класса С.В результате переменная xбудет присутствовать в двух экземплярах.

С точки зрения компилятора такая ситуация не является ошибочной. Однако при обращении к xпридется его однозначно специфицировать.

class D : public B , public C {

public:

int GetX() {return x} // не допустимо

int GetX ( ) { return B::x; }// x получено через В

SetX ( _x) { C::x = _x ;} // xполучено через С




} ;

Ниже представлена программа дублирования базового класса.

Класс “ круглое пятно , вписанное в эллипс ” – spotelliбазируется на классах spot (“пятно”) и ellips ( “эллипс”), каждый из которых базируется на классе point.

Объект базового класса point дублируется:

point point

spot ellips





Дата добавления: 2014-02-24; просмотров: 663; Опубликованный материал нарушает авторские права? | Защита персональных данных | ЗАКАЗАТЬ РАБОТУ


Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Увлечёшься девушкой-вырастут хвосты, займёшься учебой-вырастут рога 10102 - | 7844 - или читать все...

Читайте также:

  1. Возвращает норму матрицы А (по строкам)
  2. Если не возвращается, то положение равновесия считается не устойчивым
  3. Замечания. Если используются оба аргумента — и "номер_строки", и "номер_столбца", — то функция ИНДЕКС возвращает значение
  4. Замечания. Если ни одна запись не отвечает аргументу условия_отбора или подмножество не содержит записей, функция DSum возвращает Null
  5. Круговые процессы. Круговым процессом, или циклом, называют совокупность термодинамических процессов, в результате осуществления которых рабочее тело возвращается в исходное
  6. Примеры. Поскольку СИМВОЛ(7) возвращает непечатаемый символ:
  7. Примеры. ПСТР – Возвращает заданное число сим
  8. Процедура GetLineSettings - возвращает текущий стиль линий
  9. Синтаксис. Возвращает значение или ссылку на значение из таблицы или диапазона
  10. Синтаксис. Обратите внимание: повторное использование функции Dir без аргументов возвращает имя следующего файла из папки


 

3.214.224.224 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.


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