Я думаю, что динамический тип означает динамически выделяемый объект с использованием 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;
}