русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Применение виртуальных функций.


Дата добавления: 2015-07-09; просмотров: 435; Нарушение авторских прав


Если функция объявлена виртуальной («virtual»), то при вызове данной функции к объектам базового класса или же к объектам производных классов происходит вызов корректной версии функции, в зависимости к объекту какого класса она вызвана.

Виртуальные функции применяются для:

1. Создания универсальной подпрограммы для управления разноименных объектов, например, если требуется вывести на экран информацию из объектов разных классов.

//массив ссылок на объекты базового класса

CRectangle *PFigure[4];

//объекты производного класса

PFigure[0] = new CBlock(……);

PFigure[1] = new CBlock(……);

//объекты базового класса

PFigure[2] = new CRectangle (……);

PFigure[3] = new CRectangle (……);

//вывод на экран

For(int I = 0; I < 4; i++)

{

PFigure[i]->Draw(); //применение виртуальной функции}

Т.к. функция Draw() – виртуальная, то будет вызываться ее корректная версия как для объектов базового класса, так и для объектов производного класса.

Поддержка виртуальных функций является одним из видов полиморфизма.

2. Для модификации (настройки функциональности) базового класса не изменяя его код

Перегрузка операторов –применения стандартных операторов к объектам конкретного класса при условии точного описания их действия.

Class CCurrency

{………………………

Private:

Long Dollars;

Int Cents;

………………………CCurrency operator + (CCurrency Cur)

{CCurrency Temp(Dollars + Cur.Dollars, Cents + Cur.Cents);

Return Temp;

}………………………};

В С++ возможно перегрузить почти любой оператор. При перегрузке нельзя изменить синтаксис оператора (приоритет, ассоциативность, число операторов). Перегрузку операторов нельзя применить для данных встроенных типов.

Использование шаблонов в С++.

Шаблон - это способ написания единственного определения функции или класса, которое компилятор автоматически транслирует в специальную версию для каждого из типов данных используемых программой.





<== предыдущая лекция | следующая лекция ==>
Производные классы. Доступ к наследуемым переменным. | Шаблоны функций.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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