2013-07-04 188 views
0

如何在C++中檢查類的類型?
在Java中,我使用instanceof什麼是C++中的instanceof等價物?

我不喜歡使用動態轉換,但只使用經典的C++。
有什麼辦法嗎?

澄清:
這不是another question in StackOverflow重複,因爲我問我如何才能找到它,而無需使用的dynamic_cast。在另一個問題中,答案是使用它。請不要將其標記爲重複。

+3

如果不是dynamic_cast,那麼經典C++是什麼意思?你究竟想要做什麼? – chris

+0

我的意思是,對於'dynamic_cast',你需要使用'std :: ...'。出於任何原因,我沒有使用它。我創建了基類和一些派生類。當我得到一個對象時,我想要執行與特定派生類關聯的操作,但是我在一個循環中獲取了它,因此它被定義爲基礎類。在Java中,通過'instanceof'我可以知道它是哪種類型。但是在C++中不使用'dynamic_cast',我怎麼知道? – Aharon

+0

'dynamic_cast'是一種語言功能,而不是庫功能。這聽起來像你只是想要派生類覆蓋的虛函數。 – chris

回答

2

沒有辦法檢查沒有RTTI的班級類型或它的家庭釀造替代。如果應用程序編譯時沒有RTTI信息關於類型不存儲在任何地方。

相關問題