我有一個接口MuInterface
(抽象類)。和我有3類,從該接口得到:我可以命名從接口派生的每個類嗎?
class A : public MyInterface //...
class B : public MyInterface //...
class C : public MyInterface //...
我有接口的載體:std::vector< std::shared_ptr<MyInterface> > theVec;
包含A
類型,B
和C
的對象。是否有可能知道在for循環中遍歷該向量以顯示當前對象的類型(如果它是A
,B
或C
)?我想過像靜態字符串成員,但如何「虛擬化」它?如果我使用顯示靜態const字符串的虛擬函數,可以嗎:
virtual const std::string getType() { return classType; } // classType is static const std::string defined for each class
?
是的,但使用接口的關鍵在於將實際類型抽象出來。你爲什麼需要這樣做? – 2014-11-06 09:52:06
如果您需要某種類型的識別,您可能需要考慮CRTP – 2014-11-06 09:53:12
@LuchianGrigore我只是在調試模式下才需要它,以查看該訂單是否正常,但我已驗證它並且沒有問題。我會把展示的東西放在A,B和C類中。我認爲這種方式更好。謝謝 – sop 2014-11-06 10:36:25