【发布时间】:2011-10-04 14:40:33
【问题描述】:
我认为动态类型意味着使用new 动态分配的对象。在下面的情况下,你说p是指向动态类型还是静态类型的对象?在标准中,它并没有说动态类型是动态对象。
1.3.3 - 左值表示的最衍生对象 (1.8) 的类型 由左值表达式引用。 [示例:如果指针 (8.3.1) p 其 静态类型是“指向 B 类的指针”是指向类的对象 D,派生自 B(第 10 条),表达式 *p 的动态类型 是“D”。参考文献(8.3.2)的处理方式类似。 ]
下面的引用是什么意思
右值表达式的动态类型是它的静态类型
class Base {
virtual void foo(){}
};
class Derived : public Base {
void foo(){}
};
int main()
{
Derived d;
Base *p = &d;
}
【问题讨论】:
标签: c++ pointers inheritance lvalue subobject