3

この質問に対する一般的な答えは知っていますが、正しい構文を使用すると何らかの理由でエラーが発生します。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 を使用しています

私が得るかもしれない助けを前もって感謝します。

4

1 に答える 1

2

エラーは、コンパイラがそれらの定義がクラス定義内で語彙的に見つかったと考えていることを意味します。これは、欠落};またはそのようなものを意味します。

提供された情報から言えるのはそれだけです。

于 2012-11-20T02:21:24.030 に答える