Я думаю, что динамический тип означает динамически выделяемый объект с использованием new
. В следующем случае вы говорите, что p
указывает на динамический или статический тип объекта? Стандартно это не говорит о том, что динамический тип является динамическим объектом.
1.3.3 - Тип наиболее производного объекта (1.8), к которому относится lvalue, обозначенное выражением lvalue. [Пример: если указатель (8.3.1) p, статическим типом которого является «указатель на класс B», указывает на объект класса D, производный от B (пункт 10), динамический тип выражения * p - «D . " Ссылки (8.3.2) обрабатываются аналогично. ]
Также что означает следующая цитата
Динамический тип выражения rvalue - это его статический тип
class Base {
virtual void foo(){}
};
class Derived : public Base {
void foo(){}
};
int main()
{
Derived d;
Base *p = &d;
}