Вопросы по теме '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 просмотров

Сколько байтов не встроенный не виртуальный метод добавляет к экземпляру класса? С++
Возьмем, к примеру, эти два класса. (С++) 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 просмотров

Виртуальная таблица интерфейса
Имеют ли интерфейсы (полиморфный класс исключительно с чисто виртуальными функциями) виртуальную таблицу? Поскольку интерфейсы сами не реализуют полиморфную функцию и не могут быть созданы напрямую, компоновщику не нужно будет размещать виртуальную...
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