基類的指標或引用會根據執行時繫結的物件,動態的選擇是執行基類的虛函式還是派生類的虛函式。對於非虛函式的成員訪問,比如呼叫非虛成員函式,或訪問成員屬性,只能訪問指標或引用所指定的靜態型別(這裡指基類)的非虛成員,而不管動態型別是什麼。
也就是說多型是針對虛函式來說的。
以下是測試**:
//test for dynamic_cast
#include using namespace std;
class base
void p()
};class child : public base
void c()
};int main(void)
//test reference
}
C 物件的靜態型別與動態型別
在c 當中 因為出現了繼承 繼承導致物件的指標和引用具有兩種不同的型別 靜態型別 和 動態型別 靜態型別 指標或者是引用宣告時的型別。動態型別 由他實際指向的型別確定。class base class derived public base base base base的靜態型別是 base new...
C 物件的靜態型別與動態型別
由於繼承導致物件的指標和引用具有兩種不同的型別 靜態型別和 動態型別。靜態型別 指標或者是引用宣告時的型別。動態型別 由他實際指向的型別確定。例如 gameobject pgo pgo靜態型別是 gameobject new spaceship 動態型別是 spaceship asterioid p...
C 物件的靜態型別和動態型別
由於繼承導致物件的指標和引用具有兩種不同的型別 靜態型別和動態型別。靜態型別 指標或者是引用宣告時的型別。動態型別 由實際指向的型別確定。gameobject pgo new spaceship pgo 靜態型別是 gameobject 動態型別是 spaceship asterioid pa ne...