Вопросы по теме 'vtable'
Как получить имя функции по адресу функции, прочитав vtable co-classss?
Мне нужно вызвать функцию сокласса, прочитав ее адрес из vtable методов интерфейса COM. Мне нужен общий способ чтения адресов.
Теперь мне нужно вызвать функцию, у которой будут конкретные адресные (НЕ ИЗВЕСТНЫЕ) аргументы (параметры), которые я...
946 просмотров
schedule
11.10.2022
Как базовый класс может удовлетворить определение чистой виртуальной функции родителя, используя функцию другого родителя
Я расширяю существующий проект C++. У меня есть базовый класс, производный от двух родительских классов. Один из родителей имеет чисто виртуальную функцию. Я хочу, чтобы эта чистая виртуальная функция определялась функцией, реализованной в другом...
692 просмотров
schedule
08.03.2022
Будет ли использование виртуального деструктора заставлять невиртуальные функции выполнять поиск в v-таблице?
Как раз то, о чем спрашивает тема. Также хочу знать, почему ни в одном из обычных примеров CRTP не упоминается virtual dtor.
РЕДАКТИРОВАТЬ: Ребята, пожалуйста, опубликуйте также о проблеме CRTP, спасибо.
1674 просмотров
schedule
22.09.2022
Что может привести к тому, что указатель VTable будет равен 0xdddddddd в отладочной сборке Win32?
Я отлаживаю дефект и сузил его до указателя vtable для объекта 0xdddddddd . Этот ответ указывает, что отладочные сборки Win32 обычно устанавливают мертвую память или память, которая была удалена, на это специальное значение.
Обратите внимание,...
14195 просмотров
schedule
25.12.2022
Когда оператор delete() в сборке удаляет указатель vptr?
vptr удаляется при вызове оператора delete().
Но указатель vptr скрыт, и нам не нужно заботиться о его структуре памяти (плюс у каждого компилятора своя система работы).
Я хотел бы знать, когда именно vptr в объекте, который я только что сделал,...
792 просмотров
schedule
31.07.2022
Нельзя опустить, потому что класс не полиморфен?
Возможно ли иметь наследование без виртуальных методов? Компилятор говорит, что следующий код не является полиморфным.
Пример:
class A {
public:
int a;
int getA(){return a;};
}
class B : public A {
public:
int b;
int...
41190 просмотров
schedule
29.10.2022
Использование адреса таблицы виртуальных указателей, видимого в отладчике Visual Studio
Много раз в Visual Studio для C++ мы получаем адрес vfptr или vptr класса, видимого в отладчике. В Visual Studio мы также можем анализировать память потока с помощью встроенных представлений памяти. Но видимая информация там в двоичном виде.
Есть...
1832 просмотров
schedule
22.10.2022
Оптимизация одного компилятора виртуального наследования в С++?
Если у меня есть эта ситуация в проекте С++:
1 базовый класс «Base», содержащий только чистые виртуальные функции
1 класс «Производный», который является единственным классом, наследуемым (общедоступным) от «Базового»
Будет ли компилятор...
1439 просмотров
schedule
07.04.2023
Сколько байтов не встроенный не виртуальный метод добавляет к экземпляру класса? С++
Возьмем, к примеру, эти два класса. (С++)
class B1 {
public:
};
class B2 {
public:
void f0 () {}
void f1 () {}
};
Насколько больше будет класс B2 в памяти по сравнению с B1
Я чувствую, что это один из двух ответов.
один...
211 просмотров
schedule
29.09.2022
Найти индекс конкретной функции в таблице Vtable COM-интерфейса
Я пытаюсь подключить функцию SetCooperativeLevel в объекте DirectDraw. Моя цель очень похожа на цель в этом вопросе Перехват API для функции объекта COM ? однако единственная проблема в том, что я не знаю точного смещения в vtable IDirectDraw...
681 просмотров
schedule
14.04.2022
vTables и указатели функций, указывающие на разные адреса
Недавно я читал статью в блоге bitsquid о том, как управлять памятью, и автор начал рассказывать о vtable и о том, как компилятор добавляет в класс указатель. Вот ссылка на статью . Так как я почти ничего не знал о vtalbe, я начал искать объяснение...
1387 просмотров
schedule
27.06.2022
Таблица методов Java
Я многое узнал о том, как C++ управляет своими виртуальными таблицами при наличии наследования (множественного, виртуального и т. д.) и как он размещает объекты в памяти.
Теперь Java нужно беспокоиться только об одной строке наследования, не...
4855 просмотров
schedule
05.11.2022
почему и конструктор базового класса, и класс Drive запускаются при инициализации экземпляра класса Drive
#include <iostream>
using namespace std;
class Base {
public:
Base() {
cout << "In Base" << endl;
cout << "Virtual Pointer = " << (int*)this << endl;
cout <<...
254 просмотров
schedule
16.05.2024
Виртуальная таблица интерфейса
Имеют ли интерфейсы (полиморфный класс исключительно с чисто виртуальными функциями) виртуальную таблицу? Поскольку интерфейсы сами не реализуют полиморфную функцию и не могут быть созданы напрямую, компоновщику не нужно будет размещать виртуальную...
3493 просмотров
schedule
19.11.2022
Почему vptr не статичен?
Каждый класс, который содержит одну или несколько виртуальных функций, имеет связанную с ним Vtable. Пустой указатель, называемый vptr, указывает на эту vtable. Каждый объект этого класса содержит тот vptr, который указывает на одну и ту же Vtable....
3230 просмотров
schedule
19.04.2022
Могут ли компиляторы C++ оптимизировать повторяющиеся вызовы виртуальных функций для одного и того же указателя?
Предположим, у меня есть следующий код
void f(PolymorphicType *p)
{
for (int i = 0; i < 1000; ++i)
{
p->virtualMethod(something);
}
}
Будет ли сгенерированный компилятором код разыменовывать запись p vtable...
1356 просмотров
schedule
12.06.2022
скомпилировать один файл Qt из командной строки: неопределенная ссылка на vtable
Я хотел бы скомпилировать однофайловое приложение QT из командной строки, чтобы быстро протестировать некоторые функции. См. код файла ниже.
Я компилирую с:
qmake -project && qmake && make
И я получаю эту ошибку:...
986 просмотров
schedule
17.03.2023
Снижение производительности при поиске vtable в C++
Я оцениваю возможность переписать часть программного обеспечения реального времени с языка C/ассемблера на язык C++/ассемблера (по причинам, не относящимся к вопросу, части кода абсолютно необходимы для выполнения на ассемблере).
Прерывание...
9111 просмотров
schedule
29.06.2023
неопределенная ссылка на ошибку wxLog::DoLog при сборке wxHaskell против wxWidget 3.0
Я пытаюсь собрать wxHaskell для wxWidgets 3.0. Я использовал последнюю версию git wxHaskell из https://github.com/wxHaskell/wxHaskell .
Я попытался следовать install.txt в wxHaskell-master.zip, что я сделал до сих пор:
cd wxdirect
cabal...
261 просмотров
schedule
11.05.2024
c# vtable — это только часть таблицы методов типовых объектов.
Я изучаю аспекты clr в С# и читаю об этой теме в «clr через С# 4-е издание».
Говорят, что каждый экземпляр типа имеет указатель на vtable , но в книге они не не различайте статические, нестатические и виртуальные методы. В соответствии с ним...
688 просмотров
schedule
23.03.2022