C++ 如何正确拥有 Abstract Return 类型?

C++ How To Correctly Have Abstract Return Type?

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

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

*cons 将为您提供您存储的对象,其类型为 ALMObjectC。如果你想 return 这个对象的地址,你必须做

return &(*cons)