![]() |
|
Модераторы: bsa |
![]()
|
|
| Graf_h |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 482 Регистрация: 18.10.2007 Где: г. Ровно, Украина Репутация: нет Всего: 5 |
В результате будет function B Если мы не обьявим функции виртуальными, то результат будет другой! По какому принцыпу работает виртуальная таблица в данном случае? Это сообщение отредактировал(а) Graf_h - 5.4.2008, 09:43 -------------------- Иногда переменная - это просто переменная |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
Если ты имеешь в виду, как это вообще работает, то в учебниках можешь встретить описание. Если вкратце, то можно считать, к каждому объекту класса приписывается спец. поле, указывающее на на адреса виртуальных функций. Соответственно, у разных реальных типов будут разные указатели. А если virtual не ставить, то компилятор просто смотрит, что тип у объекта - A, и делает железную связку с A::func. |
|||
|
||||
| Graf_h |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 482 Регистрация: 18.10.2007 Где: г. Ровно, Украина Репутация: нет Всего: 5 |
Можна ссылку? а то где не читал, то везде просто упоминается про виртуальную таблицу, а самого механизма не описано!
-------------------- Иногда переменная - это просто переменная |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 2 Всего: 17 |
||||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Graf_h
все просто, когда ты пишешь виртуальный метод:
На самом деле, все несколько сложней, но для понимания принципов достаточно, имхо. |
||||
|
|||||
| Graf_h |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 482 Регистрация: 18.10.2007 Где: г. Ровно, Украина Репутация: нет Всего: 5 |
korian, классная стаття
bsa,
Вот именно принципи я знаю, хочу узнать как на самом деле Это сообщение отредактировал(а) Graf_h - 7.4.2008, 17:28 -------------------- Иногда переменная - это просто переменная |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
как на самом деле, зависит от компилятора так что компилятор в руки и смотреть ассемблерный листинг до просветления -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Graf_h |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 482 Регистрация: 18.10.2007 Где: г. Ровно, Украина Репутация: нет Всего: 5 |
C ассемблером знаком плохо, поэтому это мне не поможет -------------------- Иногда переменная - это просто переменная |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Тогда не лезь в эти дебри - всему своё время Ну, либо, начни изучать ассемблер... Правда, знакомство с асмом может плохо повлиять, но... если юношеский максимализм прошёл, то можно смело начинать с Зубкова "Ассемблер для DOS, Windows, UNIX" Это сообщение отредактировал(а) archimed7592 - 8.4.2008, 09:30 -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Это сообщение отредактировал(а) mes - 8.4.2008, 10:52 |
|||
|
||||
| Graf_h |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 482 Регистрация: 18.10.2007 Где: г. Ровно, Украина Репутация: нет Всего: 5 |
mes большое спасибо +1! примерно понял! спасибо
-------------------- Иногда переменная - это просто переменная |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |