-1

这是我所拥有的:

class Abstract
{
public:
  virtual bool isThis(Abstract*);
};

class FileType:public Abstract
{
public:
  bool isThis(FileType* ptr)
  {
    return false;
  }
};

这就是 Visual Studio 所说的:

在此处输入图像描述

非常感谢

4

2 回答 2

4

首先,如果你没有为 中的函数提供代码Abstract,你必须使它成为虚拟纯(= 0在最后添加)。然后,派生类中函数的签名必须相同(即接受Abstract*参数而不是FileType*)。

强烈建议您之前阅读一些 C++ 手册。它会为你省去很多麻烦。

于 2012-12-17T21:05:16.847 回答
1

错误消息说它找不到 ; 的实现Abstract::isThis(Abstract*)。这似乎是正确的,因为您提供的代码片段没有此函数的定义。

如果这个想法是一个纯虚函数,那么添加= 0到声明的末尾(在;. 但是你会得到一个进一步的错误,因为FileType没有覆盖那个函数:FileType::isThis(FileType*)没有相同的参数列表。

于 2012-12-17T21:05:25.543 回答