额外资格成员GCC

时间:2012-11-20 02:03:27

标签: c++ gcc compiler-errors

我知道这个问题的常见答案,但出于某些原因我在使用正确的语法时遇到错误,在Code :: Blocks上,我会发布一个示例来表明我不是在虚张声势:

  class BulletPlacer : sf::Drawable
  {
     public:
        BulletPlacer();
        BulletPlacer(const unsigned Quantity);

        ~BulletPlacer();
  };

这是hpp文件的一小部分。

   BulletPlacer::BulletPlacer()
     :Amount(0), Min(0)
   {}

   BulletPlacer::BulletPlacer(const unsigned Quantity)
     :Amount(Quantity), Min(0)
   {
       Bullet shot;
       ShotVec.reserve(Amount);
       for(unsigned i = 0; i < Amount; ++i)
       { ShotVec.push_back(shot); }
   }

   BulletPlacer::~BulletPlacer() { PolVecV.clear(); ShotVec.clear(); }

那就是cpp。它编译得很好,直到我开始重构类,我得到了所有方法的错误。我也得到了其他没有任何地方的错误,我得到了它们在课堂上的所有功能。我甚至重新下载了一个GCC版本,却发现它给了我完全相同的结果。

以下是错误日志的简化版本:

error: extra qualification 'BulletPlacer::' on member 'BulletPlacer' [-fpermissive]|
error: 'BulletPlacer::BulletPlacer()' cannot be overloaded|
error: with 'BulletPlacer::BulletPlacer()'|

所有功能都会像这样重复。这是非常烦人的,因为我无法通过我的SFML游戏前进因为这个并且检查300行文件可能的错误只是因为编译器对我生气是没有乐趣的。不,“BulletPlacer”使用的文件都没有得到这个。

情况变得更糟,一个完全不相关的类也会得到类似的东西:

error: cannot define member function 'BulletPlacer::Enemy::Enemy' within 'BulletPlacer'

当班级甚至不包括文件......

我正在使用GCC 4.7.1

提前感谢我的帮助。

1 个答案:

答案 0 :(得分:2)

错误意味着编译器认为这些定义是在类定义中以词汇方式找到的,这意味着缺少};或某些错误。

我可以从所提供的信息中说出这一切。