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

Как реализован полиморфизм? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как добавить CRecordVIew в проект VC7.0 http://www.cyberforum.ru/cpp-beginners/thread474717.html
Подскажите пожалуйста как добавить CRecordVIew в проект VC7.0 В 6 версии готовился шаблон диалога далее вызывался CLassWizard с помощью которго добавлялся CRecordView и связывался с CRecordset. Может кто знает как это сделать в 7 версии. Я так же делаю заготовку шаблона диалога, далее говорю добавить класс,но CRecordView в вэтом списке не доступен. Спасибо.
C++ подскажите с выбором языка В данный момент изучаю ассемблер, потом хочу выучить выссокий язык для создания игр типа star craft'a или cs помогите выбрать язык который лучше всего справляется с этим и проще всего делать такие проги. Буду очень благодарен. Пожалуйсто пишите на mailto: wulfic@yandex.ru http://www.cyberforum.ru/cpp-beginners/thread474673.html
C++ Проблема с выводом bitmap-ов на принтер...
Вобчем, дело такое. берем любой экранный DC например форму. берем любой битмап - например из ресурсов берем самый стандартный BitBlt - все пучком, через не раз описанный memDC все работает. берем DC принтера. выводим на него всякую фигню (техт, ректанглы и т.п.)- все пучком пробуем вывести битмап - ошибок не выдает, все пучком... вот только не выводит. т.е. текст и т.д. - выводит, а...
ПОмогите пожалуста решить задачи по С++!!! C++
Кто-нибудь! Помогите! На субботу 11 января решить задачи по С++. Сама не справлюсь. Заранее спасибо! ICQ 58512271 Iness
C++ Как программно сжать директорию или несколько файлов? http://www.cyberforum.ru/cpp-beginners/thread474582.html
нужно программно сжать директорию или несколько файлов то что я нашел в сети сжимает только один файл подскажите если кто знает
C++ Как сделать Enable ComboBox в ATL (CWindow)? Добрый день! Проблема в следующем: есть ComboBox, надо сделать его Enable. Я пишу:SendDlgItemMessage(IDC_COMBO1,WM_ENABLE,FALSE,0). Но это что-то не работает! Не знаете, в чем дело? Спасибо! подробнее

Показать сообщение отдельно
palva
 Аватар для palva
2432 / 1654 / 207
Регистрация: 08.06.2007
Сообщений: 6,564
Записей в блоге: 4
21.03.2009, 19:22     Как реализован полиморфизм?
Классы, которые содержат виртуальные функции члены или наследуют их компилируются особым образом:

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

2. При компиляции функции члена обращение к виртуальной функции осуществляется не по имени функции а по ее номеру в таблице виртуальных функций.

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

4. При компиляции вызова любой функции-члена компилятору доступно имя класса, которому принадлежит объект (или указатель на объект), поэтому он просто закладывает в код передачу в виде константы ссылки на таблицу соответствующего класса.
 
Текущее время: 22:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru