2017-08-03 28 views
-3

我需要下面的方法來返回一個抽象類型ALMObjectC,但我發現這隻能通過指針完成;但是當我聲明這一點時,編譯器指出:C++如何正確使用抽象返回類型?

Error: no suitable conversion function from "ALMObjectC" to "ALMObjectC*" exists. 

那麼我該如何解決這個問題呢? 下面是有問題的方法:

ALMObjectC* AlmRESTC::findChild(int ref){ 
    //objectSet(ref) => ALMObjectC 
    for(list<ALMObjectC>::iterator cons = objectSet.begin(); (cons != objectSet.end()); cons++){ 
     if (distance(objectSet.begin(), cons) == ref) 
      return *cons; 
    } 
} 
+2

錯誤信息是很清楚.. –

+2

考慮返回一個參考:使用'ALMObjectC&AlmRESTC :: findChild(INT REF)' – 2017-08-03 10:11:36

+0

@ manni66參考不會讓他使用多態性 – Xatyrian

回答

2

*cons會給你它具有類型ALMObjectC你存儲的對象。如果您想返回該對象的地址,你必須做

return &(*cons) 
+0

I.e.返回這個指針的值,作爲另一個指針的共域。在降噪。 – Olivier10178