Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Замечание. Когда вы начинаете писать новую программу, поищите среди классов один или несколько таких, которые могут вам пригодиться

Виртуальные функции

Совет

Когда вы начинаете писать новую программу, поищите среди классов один или несколько таких, которые могут вам пригодиться. Используйте существующие классы в качестве базовых для вывода новых классов. К этим новым классам вы можете добавить конструкторы, деструкторы, данные-члены и функции0-члены так, чтобы существующие классы могли исполнять наши приказы. Нельзя сказать, что ООП делает программирование проще, но, по крайней мере, вы упрощаете себе работу, используя повторно существующий код.

 

виртуальная функция – это функция, вызов которой зависит от типа объекта.

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

В ООП можно писать виртуальные функции так, чтобы объект определял, какую функцию необходимо вызывать, во время выполнения программы.

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

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

важный принцип классов С++, связанных отношением наследования. Согласно правилам С++ указатель на базовой класс может ссылаться на объект этого класса или на объект другого класса, производного от базового (рис. 3.10 и 3.11).

Рис. 3.10. Указатель на базовый класс может ссылаться на объект производного класса

Понимание этого правила – ключ к пониманию того, как используются виртуальные функции.

ПРИМЕР: Рассмотрим ряд классов – А В и С, где В потомок А, а С – потомок B.

 

A aObject;

// Объявление объекта типа А

B bObject;

// Объявление объекта типа B

C cObject;

// Объявление объекта типа C

Рис. 3.11. Указатель на базовый класс может ссылаться на данные-члены,

наследуемые производным классом

 

По определению указатель типа А может ссылаться на любой из этих объектов, поскольку они связаны отношением наследования.

<== предыдущая лекция | следующая лекция ==>
Замечание. Программа выводит отсчет о точности таймера: | Виртуальные функции в реальной жизни
Поделиться с друзьями:


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


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



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




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