Название: Что такое 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 дать не могу-она у меня в печатном виде. |