Russian Qt Forum

Программирование => С/C++ => Тема начата: Vitaly_ от Июль 19, 2007, 12:17



Название: Что такое VPTR?
Отправлено: Vitaly_ от Июль 19, 2007, 12:17
Товарищи читая разную докумнецию я натыкнулся на такое понятие как VPTR. Кто то может в кратце обьяснить что это такое и с чем его едят? Было бы лучше что бы скинули ссылку где про это можно почитать!


Название: Что такое VPTR?
Отправлено: sandy от Июль 20, 2007, 09:07
vptr (virtual function pointer - указатель виртуальных функций); он автоматически инициализируется конструктором для указания на таблицу vtbl класса. Когда клиент вызывает виртуальную функцию, транслятор генерирует код, чтобы разыменовать указатель vptr, занести его в vtbl и вызвать функцию через ее указатель, найденный в назначенном месте. Так на C++ обеспечивается полиморфизм и диспетчеризация динамических вызовов


Название: Что такое VPTR?
Отправлено: Vitaly_ от Июль 20, 2007, 13:22
Было бы лучше что бы скинули ссылку где про это можно почитать!


Название: Что такое VPTR?
Отправлено: joktar от Июль 22, 2007, 13:00
Бьярн Страуструп. Дизайн и эволюция языка C++, начиная со страницы 85(раздел 3.5.1 Модель размещения объекта в памяти) и страницы 270 (раздел 12.4, Модель размещения объекта в памяти, тут про случай с множественным наследованим)

p.s.URL дать не могу-она у меня в печатном виде.