我有一个类:
Base.h
class Base {
public:
Base();
virtual int getInfo(int i);
protected:
int GetDetail (int iVal);
}
inline int Base::getInfo(int i){
int output = GetDetail(i);
return output;
};
Ib Base.cpp,我定义了GetDetail。
int Base::GetDetail(int i){
int output;
// do work to output
return output;
}
我有一些从他们自己的实现getInfo()调用GetDetail的派生类。
当我从Base.h中的虚函数定义中删除对getInfo()的调用时,代码将编译,派生类自己实现。
当我使用内联虚拟函数调用GetDetail的虚函数进行编译时,链接失败并显示:
未确定参考GetDetail。
有什么想法吗?
答案 0 :(得分:4)
class Base {...};
作为参考,我可以使用g ++ 4.4.3成功编译/链接你的例子(添加了分号)。
答案 1 :(得分:2)
删除inline
前面的int Base::getInfo(int i)
说明符,然后尝试(: