我在使用 gcc 版本 4.6.3 编译 c++ 程序时遇到问题;我可以使用 microsoft 编译器 (v 9.0) 毫无问题地编译这个程序。该程序正在使用我一直与微软编译器一起使用的一些库。
问题是当我尝试将引用作为另一个子类型的参数传递时:这里的伪示例:
class ObjManager{..}
class SubObjMng : public ObjManager{
public:
inline SubObjMng() : ObjManager(0, ... ){}
};
class Test{
public:
Test(int i, ObjManager &obj_mng);
}
int main(){
SubObjMng myobjmng;
Test t(0, myobjmng); //GCC ERROR HERE
}
错误的输出是(我的程序的实际输出):
globals.h:227:40: error: no matching function for call to cdk::HashMap::HashMap(unsigned int, cdk::PtrObjMng, cdk::cstrObjMng)
globals.h:227:40: note: candidates are:
contrib/cdklib/cdk_struct.h:485:12: note: cdk::HashMap::HashMap(uint32_t, cdk::ObjManager&, cdk::ObjManager&)
contrib/cdklib/cdk_struct.h:485:12: note: no known conversion for argument 2 from cdk::PtrObjMng to cdk::ObjManager&
有人可以帮忙吗?谢谢!