3
ответа

Виртуальные таблицы и виртуальные указатели для нескольких виртуальное наследование и преобразование типа

Я мало смущен vptr и представлением объектов в памяти и надеждой, можно помочь мне понять вопрос лучше. Полагайте, что B наследовался A, и оба определяют виртуальные функции f ()...
вопрос задан: 24 July 2010 12:13
0
ответов

Альтернативная виртуальная реализации вызовов функций?

C ++ поддерживает динамическое связывание через виртуальный механизм. Но насколько я понимаю, виртуальный механизм - это деталь реализации компилятора, а стандарт просто определяет поведение того, что ...
вопрос задан: 19 November 2019 19:20
0
ответов

Когда именно указатель виртуальной таблицы (в C ++) устанавливается для объекта?

Я знаю, что для любого класса, имеющего виртуальную функцию, или производного класса из класса, имеющего виртуальную функцию, компилятор делает две вещи. Во-первых, он создает для этого виртуальную таблицу ...
вопрос задан: 19 November 2019 17:39
0
ответов

Когда vptr (указывающий на vtable) инициализируется для полиморфного класса?

Это не о «Когда создается VTABLE?». Скорее, когда следует инициализировать VPTR? Это в начале / конце конструктора или до / после конструктора? A :: A (): i (0), j (0) -> & ...
вопрос задан: 9 July 2018 03:47
0
ответов

понимание vptr в множественном наследовании?

Я пытаюсь разобраться в утверждении в книге «Эффективный C ++». Ниже приводится диаграмма наследования для множественного наследования. Теперь в книге говорится, что для vptr требуется отдельная память в каждом классе. ...
вопрос задан: 8 July 2018 18:01
0
ответов

Альтернативные схемы реализации vptr?

Этот вопрос касается не самого языка C++(, т.е. не стандарта), а того, как вызвать компилятор для реализации альтернативных схем для виртуальной функции. Общая схема для...
вопрос задан: 28 June 2018 02:43
0
ответов

Подробности реализации виртуальной диспетчеризации

Прежде всего, я хочу прояснить, что я действительно понимаю, что в стандарте C ++ нет понятия vtables и vptrs. Однако я думаю, что практически все реализации реализуют ...
вопрос задан: 12 June 2018 11:49
0
ответов

Почему требуется vptr, если производный класс не переопределяет виртуальную функцию?

class base { public: void virtual fn(int i) { cout << "base" << endl; } }; class der : public base{ public: void fn(char i) { cout << "der" << ...
вопрос задан: 25 April 2016 21:00
0
ответов

Количество виртуальных таблиц и виртуальных указателей в программе на C ++

Допустим, у нас есть программа ниже: класс A {общественность: виртуальное развлечение () {}; }; класс B: общественный A {общественность: виртуальное развлечение () {}; }; int main () {A a1; B b1; } Мой вопрос в том, сколько ...
вопрос задан: 4 October 2012 11:36
0
ответов

То, сколько vptr будет объект класса (использует единственное / множественное наследование), имеют?

Сколько vptrs обычно необходимо для объекта, класс которого (ребенок) имеет единичное наследование с базовым классом, который несколько наследовали base1 и base2. Какова стратегия идентификации сколько vptrs...
вопрос задан: 8 August 2012 23:40
0
ответов

расположение указателя таблицы виртуальных функций в объекте

Насколько я понимаю, расположение указателя таблицы виртуальных функций в объекте зависит от компилятора. Есть ли плюсы/минусы размещения этого указателя в начале объекта или в конце или...
вопрос задан: 7 June 2012 03:09
0
ответов

Наличие VPTR в подобъектах

У меня есть класс «база» с виртуальным деструктором и, следовательно, VTable и соответствующий VTPR в нем, а также производный от него класс :class base { публичная :виртуальная ~база (){} }; класс дер :база {}; главная (...
вопрос задан: 5 June 2012 14:58
0
ответов

C++/compilation: is it можно установить размер vptr (глобальная vtable + 2 байта индекса)

Недавно я опубликовал вопрос о накладных расходах памяти из-за виртуальности в C++. Ответы позволяют мне понять, как работают vtable и vptr. Моя проблема заключается в следующем: я работаю на суперкомпьютерах, я...
вопрос задан: 12 May 2012 08:50
0
ответов

Меняется ли vptr при уничтожении?

Я смотрел эту статью, и там написано "При входе в деструктор базового класса объект становится объектом базового класса, и все части C++ - виртуальные функции, динамические_передачи и т.д. - относятся к нему, что...
вопрос задан: 27 October 2011 13:48
0
ответов

Почему мой объект C ++ теряет свой VPTr

При отладке одного из дампов ядра программы я столкнулся со сценарием, когда содержащийся в нем объект, который является полиморфным, теряет свой VPTr, и я вижу, что он указывает на NULL. Каким может быть сценарий ...
вопрос задан: 19 October 2010 07:09