我正在研究一個C++項目,專門實現分流碼算法。確定哪些基類shared_ptr已被傳入超級類shared_ptr向量
我有一個函數可以創建一個類型超類的向量shared_ptr
,但是被推入這個向量的類都是基類shared_ptr
s。
然後我需要把這個向量傳遞給另一個函數,併爲for循環中的每個向量元素執行不同的邏輯。然而,我執行的邏輯取決於向量的每個元素中存在哪個基類。
所以基本上我不知道的是如何確定哪些類型的基類是在向量的每個元素中。當我調試他們都出來作爲超級類型。
所以一般我願意做這樣的事情:
if(vectorElement == baseClass)
{
//do some logic
}
或者,如果有攜帶這種哪些我失去了我很想在攜帶了一些不同的方法。
我不能說我理解你100%,但你是否正在尋找'dynamic_cast'或'dynamic_pointer_cast'? – Angew
術語基類和超類代表一個類派生自。派生類也被稱爲子類(細微差別:-))。所以請編輯您的帖子以清除 – stefan
可能有一種方法將此實現到我的解決方案中,但我不認爲我可以想象的任何方式都是可行的。 – mcraen