Вопросы по теме 'vptr'

Бывают ли случаи, когда класс объявляет виртуальные методы и компилятору не нужно использовать vptr?
Мне было интересно, существует ли возможная оптимизация, при которой компилятору не нужно назначать vptr созданному объекту, даже если тип объекта является классом с виртуальными методами. Например, рассмотрим: #include <iostream> struct...
151 просмотров
schedule 01.11.2022

где переопределенный виртуальный метод, сохраненный в vtable c++ при множественном наследовании
В C++ нет представления класса во время выполнения, но я всегда могу вызвать переопределенный виртуальный метод в производном классе. где этот переопределенный метод сохранен в vtable? вот кусок кода для демонстрации: struct B1 { virtual void...
439 просмотров

Использование структуры C++ с виртуальными элементами (т.е. не-POD) в C
В таких вопросах, как это , совместимость между классами/структурами C++ и C-структуры объясняются настолько, насколько это возможно, если все элементы имеют один и тот же тип, в одном и том же порядке и не объявлены виртуальные члены. Это моя...
1595 просмотров
schedule 16.10.2022

Инициализация объектов с виртуальными функциями в заранее выделенной памяти без размещения нового оператора — возможно ли это? Если нет, то почему
Допустим, есть простая иерархия классов и объект состояния, который использует производный класс; struct base_class { int Value; base_class() { this->Value = 1; } virtual void Func() { printf("Base\n"); }; }; struct derived_class...
81 просмотров
schedule 11.07.2023

Почему использование другого типа возвращаемого значения в объявлении виртуальной функции приводит к ошибке, а не к переопределению?
Базовый класс: class Base { public: virtual int f() const { return 1; } }; Производный класс: class Derived: public Base { public: void f() const {} }; Вышеприведенный код выдает тип...
69 просмотров