我知道这个问题的普遍答案,但是由于某些原因,当我使用正确的语法时,我在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
提前感谢您的任何帮助。