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