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)
我需要以下方法来 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)