Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Мартиника
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 43
#1

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

21.10.2011, 01:12. Просмотров 495. Ответов 4
Метки нет (Все метки)

В учебнике дается понятие абстрактного класса, как класса содержащего хоть одну виртуальную функцию.
Проблема в том, что я так и не смогла для себя четко понять, что же такое. виртуальная функция. Облазила кучу сайтов, но там все как-то зыбко и непонятно.
Объяните, пожалуйста на пальцах, что же это такое.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2011, 01:12     Виртуальная функция
Посмотрите здесь:

виртуальная функция C++
C++ виртуальная функция
C++ Виртуальная функция
C++ Виртуальная функция не хочет перекрываться
Чистая виртуальная функция C++
C++ Виртуальная функция и возвращаемое значение
C++ Виртуальная функция, принимающая объекты поочередно
C++ Виртуальная функция
C++ Виртуальная функция
Виртуальная функция C++
C++ Виртуальная функция, полиморфизм
C++ Чисто виртуальная функция возвращающая ссылку

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
21.10.2011, 01:19     Виртуальная функция #2
Цитата Сообщение от Мартиника Посмотреть сообщение
как класса содержащего хоть одну виртуальную функцию.
как класса содержащего хоть одну чисто виртуальную функцию, т.е. виртуальную функцию без реализации.
На пальцах все объяснено в каждой книге по основам С++.
Литература С++
Выбираете любую книгу уровня Hello World оттуда по С++ и вперед.
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4253 / 2785 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
21.10.2011, 14:59     Виртуальная функция #3
Виртуальная функция - это функция, адрес которой будет вычислен на этапе работы программы (а не на этапе компиляции, как обычно). Это называется позднее связывание. Понадобиться оно может для полиморфного использования объектов.
Как то так, хотя конечно литературу почитать стоит.
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.10.2011, 20:18     Виртуальная функция #4
Цитата Сообщение от Kastaneda Посмотреть сообщение
Виртуальная функция - это функция, адрес которой будет вычислен на этапе работы программы (а не на этапе компиляции, как обычно)
Не совсем корректное определение. Ведь адрес и так вычисляется на этапе работы программы, поскольку программа при запуске загружается в оперативную память, и значит функции каждый раз могут получать разные адреса.
Kastaneda
21.10.2011, 20:28     Виртуальная функция
  #5

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
и значит функции каждый раз могут получать разные адреса.
Разными будут абсолютные адреса, виртуальные адреса(смещения) будут "вшиты" в код, т.е. на месте вызова ф-ции будет примерно такой ассебмлерный код:
Assembler
1
call 0E81127h ;адерес взят наугад
в этом как раз заключается работа линкера.

Yandex
Объявления
21.10.2011, 20:28     Виртуальная функция
Ответ Создать тему
Опции темы

Текущее время: 21:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru