template <class T> void checkObject(T genericObject)
{
MyClassA* a = dynamic_cast<MyClassA*>(genericObject);
if (a != NULL)
{
//we know it is of type MyClassA
}
MyClassB* b = dynamic_cast<MyClassB*>(genericObject);
if (b != NULL)
{
//we know it is of type MyClassB
}
}
是這樣的可能嗎?我們有一個模板類型,但我們想知道它是實際類型?是否可以使用dynamic_cast進行模板類型檢查?
是的,它可能,但它肯定會是一個糟糕的設計選擇。你究竟在做什麼? –
您也可以重載該函數並獲得編譯時檢查。 –
@ K-ballo:只有這些類具有虛擬功能纔可能不是嗎?否則不是UB? –