C ++如何正确抽象返回类型?

时间:2017-08-03 10:02:24

标签: c++ inheritance abstract

我需要以下方法来返回一个抽象类型ALMObjectC,但我发现这只能通过Pointer完成;但是当我声明这个时,编译器声明:

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;
    }
}

1 个答案:

答案 0 :(得分:2)

*cons会为您提供存储的对象,其类型为ALMObjectC。如果要返回此对象的地址,则必须执行

return &(*cons)