Свързани въпроси 'vtable'
c++ виртуална функция срещу указател на членска функция (сравнение на производителността)
Извикванията на виртуални функции могат да бъдат бавни поради виртуалните извиквания, изискващи допълнително индексирано уважение към v-таблицата, което може да доведе до пропуск на кеш данни, както и пропуск на кеш на инструкции... Не е добре за...
2852 изгледи
schedule
06.12.2023
Защо се изисква виртуална таблица само в случай на виртуални функции?
От 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 изгледи
schedule
29.05.2024