Cтраница 2
Виртуальную функцию можно использовать для модификации базового класса, не изменяя при этом его код. Предположим, задан класс, предназначенный для вывода окна сообщения и, возможно, являющийся частью коммерческой библиотеки классов. [16]
Виртуальным функциям свойственен полиморфизм - способность использовать один оператор для выполнения любого из множества различных действий. При этом конкретное действие определяется типом вызываемого объекта. [17]
Если виртуальная функция вызывается при помощи ссылки на объект по его имени и операции-точки выбора элемента класса, то ссылка разрешается во время компиляции ( это называется статическим связыванием) и вызывается виртуальная функция из того класса ( определенная в нем или унаследованная), которому принадлежит данный объект. [18]
Используя виртуальные функции, можно создавать простые универсальные подпрограммы для управления множеством различных ( но связанных) объектов. [19]
Если виртуальная функция вызывается при помощи имени объекта класса и операции-точки, ссылка разрешается во время компиляции ( что называется статическим связыванием) и вызвана будет виртуальная функция, определенная в том классе ( или унаследованная этим классом), к которому принадлежит данный объект. [20]
Когда виртуальная функция вызывается через посредство указателя на базовый класс, C выбирает замещающую функцию соответствующего производного класса, связанного с конкретным объектом, на который ссылается указатель. [21]
Создание виртуальной функции, которая вызывается при инициировании события. [22]
Создание виртуальной функции для инициирования события является действием, требующим некоторого разъяснения. [23]
Использование виртуальных функций и полиморфизма позволяет одному и тому же вызову функции-элемента выполнять различные действия, зависящие от типа объекта, получившего вызов. Этот механизм предоставляет программисту выразительные средства, которые трудно переоценить. В следующих разделах главы мы увидим примеры мощи полиморфизма и виртуальных функций. [24]
Поддержка виртуальных функций является важной характеристикой в объектно-ориентированном программировании и называется полиморфизмом. [25]
Благодаря виртуальным функциям и полиморфизму программна может управлять общими свойствами объектов, предоставляя возможность программной среде во время выполнения программы самой заботиться о специфике объектов. Программист может управлять широким спектром объектов, даже не зная об их типах, причем управление будет автоматически учитывать специфику этих объектов. [26]
Благодаря виртуальным функциям и полиморфизму программист может управлять общими свойствами объектов, предоставляя возможность программной среде во время выполнения программы самой заботиться о специфике объектов. Программист может управлять широким спектром объектов, даже не зная об их типах, причем управление будет автоматически учитывать специфику этих объектов. [27]
Благодаря виртуальным функциям и полиморфизму стало возможным разрабатывать системы, которые легко расширяются. Программы могут обрабатывать объекты, тип которых не был известен на момент их разработки. [28]
Обеспечиваемый виртуальными функциями и динамическим связыванием полиморфизм довольно эффективен. Использование этих механизмов незначительно влияет на эффективность системы. [29]
Обеспечиваемый виртуальными функциями и динамическим связыванием полиморфизм довольно эффективен. Использование этих механизмов незначительно повлияет на эффективность системы. [30]