可以想象我有這樣的類:如何理解父類的水平
class Base
{
};
class D2: public Base
{
}
class D3: public D2
{
};
class D4: public D3
{
};
推移...
,我有基地類的指針列表。
假設我不知道這些類的繼承順序。我只能理解指針是否是給定類的實例。 (我不能手動檢查,因爲人們會在稍後註冊這些類)
例子:
D3* d3 = new D3();
D2::isInstance(d3); //return true
D4::isInstance(d3); //return false
當我彈出基地類的指針,我想將它扔在最派生類。
主要問題: 有沒有一種C++方法,我可以理解D3是否從D2繼承或不?如果存在我可以解決的這種方法。
謝謝。
看看[鏈接](http://en.cppreference.com/w/cpp/types/is_base_of) – Incomputable
謝謝Olzhas。我認爲這是答案 – ufukgun
理想情況下,你不需要知道派生類是什麼。所有基類都需要使用所需的所有方法,而不必訴諸於確定其類型。這不是最佳實踐。 – Neil