Виртуальная функция - Большая Энциклопедия Нефти и Газа, статья, страница 1
Если ты закладываешь чушь в компьютер, ничего кроме чуши он обратно не выдаст. Но эта чушь, пройдя через довольно дорогую машину, некоим образом облагораживается, и никто не решается критиковать ее. Законы Мерфи (еще...)

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

Cтраница 1


Виртуальные функции и полиморфное программирование могут устранить потребность в использовании логики оператора выбора switch. Программист может использовать возможности виртуальных функций для автоматического выполнения аналогичной логики, избегая таким образом разного рода ошибок, присущих логике оператора switch. Коды, принимающие решения относительно типов объектов и их представления, свидетельствуют о плохом стиле проектирования классов.  [1]

Виртуальная функция объявляется с помощью ключевого слова virtual, предшествующего прототипу функции в базовом классе.  [2]

Виртуальная функция ( virtual function) - это функция, которая ikisgi будет автоматически вызываться, если в производном классе существует функция с таким же именем.  [3]

Виртуальные функции позволяют создавать простые универсальные подпрограммы, автоматически управляющие множеством объектов различных типов. Предположим, имеется программа, позволяющая создавать прямоугольники, блоки или блоки с закругленными углами. Каждый раз, когда пользователь создает одну из этих фигур, программа вызывает новый оператор для динамического создания объекта соответствующего класса ( CRectangle, CBlock или CRoundBlock), управляющего новой фигурой.  [4]

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

6 Доступ к членам базового класса. [6]

Виртуальная функция, объявленная с инициализатором 0 вместо тела функции, называется чистой виртуальной функцией. Класс, содержащий хотя бы одну чистую виртуальную функцию, называется абстрактным классом.  [7]

8 Программа-тестер иерархии классов point, circle и cylinder ( часть 9 из 9. [8]

Виртуальные функции и полиморфизм позволяют отказаться от логики оператора switch. Механизм виртуальных функций автоматически обеспечивает необходимую логику поведения, и в результате исключаются ошибки, свойственные switch - логике. Программа-клиент, которая сама определяет типы объектов и их поведение, свидетельствует о недостаточной проработке классов.  [9]

Виртуальная функция объявляется при помощи ключевого слова virtual, с которого начинается прототип функции в базовом классе.  [10]

Переопределяемая виртуальная функция должна иметь тот же возвращаемый тип и список параметров, что и виртуальная функция базового класса.  [11]

Виртуальная функция OnUpdate вызывается при первоначальном создании окна представления, а также всякий раз, когда функция CTextDemoDoc: : OnOptionsFont обращается к CDocument: : UpdateAllViews после выбора нового шрифта ( о функции OnUpdate рассказывалось в гл. Функция OnUpdate устанавливает размер прокручиваемого документа ( т.е. полный размер основной части текста), полученный исходя из размеров нового шрифта.  [12]

Виртуальная функция CcontDemoCntritem: : OnChange получает управление, когда сервер изменяет компонент в режиме редактирования на месте или в режиме полного открытия. Версия этой функции, реализованная мастером AppWizard, вызывает версию этой же функции в базовом классе, а затем - функцию CDocument: : UpdateAllViews ( см. гл. OnDraw класса представления перерисовывает компонент.  [13]

Сначала виртуальные функции могут показаться несколько сложными для понимания. Тем не менее, усилия, потраченные на изучение этой темы, оправдываются. Не только потому, что они являются важным инструментом объектно-ориентированного программирования, но еще и потому, что они широко используются в библиотеке MFC. Виртуальные функции позволяют писать простые универсальные подпрограммы для манипулирования объектами различных типов. Они дают возможность изменять свойства существующих базовых классов даже при отсутствии доступа к исходному коду этих классов.  [14]

Переопределяемая виртуальная функция должна иметь тот же возвращаемый тип и список параметров, что и виртуальная функция базового класса.  [15]



Страницы:      1    2    3    4