-1

パッケージを作成しましたが、コンパイル中に「型に名前を付けない」という問題に直面しました。

コードは次のとおりです:skeleton.h

  #include "gp.h"

  ...       

  class Formula : public GP
  {
     ...
  };

  ...

  class FormulaPopulation : public GPPopulation
  {
     ...
     Formula* NthMyGP (int n) { return (Formula*) GPContainer::Nth (n); }
     ...
  };

コンパイルすると、コンパイラはFormula(FormulaPopulation内)が型を指定しないことを示しますが、FormulaクラスはFormulaPopulationクラスのすぐ上に定義されているため、このエラーが発生する理由がわかりません...

詳細については、こちらからパッケージをダウンロードできます。(ダウンロード後、このファイルを解凍し、ディレクトリ「printNatural」の下に作成します。エラーが表示されます)

どんな助けでもいただければ幸いです。

4

2 に答える 2

2

ファイルが欠落しているため、tarballはビルドされませんが extern vector<myFNode> Formula;、競合の原因となる宣言があります。

Formulaクラスを使用することは不可能ですが、競合を引き起こすことなくクラスを定義することが明らかに可能であるということは非常に混乱しています。

于 2012-10-08T21:37:47.243 に答える
0

コピーして貼り付けたコードがプロジェクトのコードと同じである場合は、セミコロンがありません。

  #include "gp.h"
  class Formula : public GP
  {
     ...
  }; // <-- HERE

  ...

  class FormulaPopulation : public GPPopulation
  {
     ...
     Formula* NthMyGP (int n) { return (Formula*) GPContainer::Nth (n); }
     ...
  }; // <-- HERE
于 2012-10-08T10:13:25.600 に答える