这就是我所拥有的:
class Abstract
{
public:
virtual bool isThis(Abstract*);
};
class FileType:public Abstract
{
public:
bool isThis(FileType* ptr)
{
return false;
}
};
这就是Visual Studio的作用:
非常感谢
答案 0 :(得分:4)
首先,如果您不在Abstract
中提供该函数的代码,则必须使其为虚拟纯色(最后添加= 0
)。然后,派生类中函数的签名必须相同(即接受Abstract*
参数而不是FileType*
)。
我强烈建议你以前阅读一些C ++手册。它会为你省去很多麻烦。
答案 1 :(得分:1)
错误消息表明找不到Abstract::isThis(Abstract*)
的实现;这似乎是正确的,因为您提供的代码段没有此函数的定义。
如果想要将其作为纯虚函数,那么将= 0
添加到声明的末尾(;
之前。但是那样你会得到进一步的错误,因为{ {1}}不会覆盖该函数:FileType
没有相同的参数列表。