我认为动态类型指的是使用
new
动态分配的对象。在下面的情况中,你认为p
指向的是动态类型还是静态类型?在标准中,并没有说明动态类型是动态对象。
此外,以下引用的含义是什么?1.3.3 - lvalue表达式所表示的lvalue引用的最派生对象(1.8)的类型。[例如:如果指针(8.3.1)p的静态类型为“指向类B的指针”,指向从B(条款10)派生出来的D类的对象,则表达式*p的动态类型为“D”。参考文献(8.3.2)也类似处理。]
rvalue表达式的动态类型是它的静态类型
class Base {
virtual void foo(){}
};
class Derived : public Base {
void foo(){}
};
int main()
{
Derived d;
Base *p = &d;
}
A &k = B();
不就可以了吗? - arne