Свързани въпроси 'vtable'

c++ виртуална функция срещу указател на членска функция (сравнение на производителността)
Извикванията на виртуални функции могат да бъдат бавни поради виртуалните извиквания, изискващи допълнително индексирано уважение към v-таблицата, което може да доведе до пропуск на кеш данни, както и пропуск на кеш на инструкции... Не е добре за...
2852 изгледи

Защо се изисква виртуална таблица само в случай на виртуални функции?
От http://www.learncpp.com/cpp-tutorial/125-the-virtual-table/ , код като напр class Base { public: virtual void function1() {}; virtual void function2() {}; }; class D1: public Base { public: virtual void function1() {}; }; class...
481 изгледи
schedule 18.12.2023

Възможно ли е да се приложи заобикаляне на vtable за виртуални функции?
Вместо да използвате виртуални функции, където има търсене към указателя на vtable в обекта, който след това ви отвежда до vtable, съдържащ указател към функцията - не би ли било възможно просто да съдържа член на данни в обекта, който сочи директно...
596 изгледи
schedule 23.10.2023

C++ достъп до частна функция чрез указатели
Да кажем, че имам следното: class A { private: int a; virtual int f() {return a;} public: A(int t) {a = t;} }; Сега, как да получа достъп до int A::f() , ако ми бъде даден указател към A обект? Знам как да получа! void main...
2423 изгледи
schedule 12.11.2023

Vtable разполагане на напълно чист виртуален клас
Според моите (ограничени) познания за спецификацията на C++, vtable на клас с виртуални членове се поставя в дефиницията на първия не-чист не-вграден виртуален метод. Как компилаторите обработват класове, които наследяват от клас с ВСИЧКИ чисти...
1854 изгледи
schedule 13.04.2024

Виртуални таблици и оформление на паметта в множествено виртуално наследяване
Помислете за следната йерархия: struct A { int a; A() { f(0); } A(int i) { f(i); } virtual void f(int i) { cout << i; } }; struct B1 : virtual A { int b1; B1(int i) : A(i) { f(i); } virtual void f(int i) { cout <<...
7165 изгледи