我認爲動態類型是指使用new
動態分配的對象。在下面的情況下,你說p
指向動態類型還是靜態類型的對象?在標準中,它並沒有說動態類型是動態對象。什麼是動態類型的對象
1.3.3 - 左值表達式將左值表示爲 的最大派生對象(1.8)的類型引用。 [示例:如果指針(8.3.1)p的靜態類型是「指向類B」的指針指向類D 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;
}
+1清晰,簡潔,很好的例子。 – Lou
+1,但我想你可以通過添加一個根本不使用新的例子來更清楚地說明這個例子。 –
'A&k = B();'是否就夠了? – arne