Вопросы по теме 'vptr'
Бывают ли случаи, когда класс объявляет виртуальные методы и компилятору не нужно использовать vptr?
Мне было интересно, существует ли возможная оптимизация, при которой компилятору не нужно назначать vptr созданному объекту, даже если тип объекта является классом с виртуальными методами.
Например, рассмотрим:
#include <iostream>
struct...
151 просмотров
schedule
01.11.2022
где переопределенный виртуальный метод, сохраненный в vtable c++ при множественном наследовании
В C++ нет представления класса во время выполнения, но я всегда могу вызвать переопределенный виртуальный метод в производном классе. где этот переопределенный метод сохранен в vtable? вот кусок кода для демонстрации:
struct B1 {
virtual void...
439 просмотров
schedule
10.09.2022
Использование структуры 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 просмотров
schedule
22.04.2023