0

複数のことを試しましたが、同じエラーが発生し続けます。まず最初に言いたいのは、私はポケモン関連の仕事をしているわけではないということです。なぜなら、私のスキルはそのためには明らかに十分ではないからです。 .

struct pokeDex {
            struct pokemonTemplate {
            std::string pokemonName;
            std::string pokemonMoves[3];
            int pokemonLevel;
            int baseATK;
            int baseDEF;
            int baseSPATK;
            int baseSPDEF;
            int baseSPEED;
            };

            pokemonTemplate Bulbasaur;
            Bulbasaur.pokemonName = "Bulbasaur";
            Bulbasaur.pokemonLevel = 5;
            Bulbasaur.baseATK = Bulbasaur.pokemonLevel * 10;
            Bulbasaur.baseDEF = Bulbasaur.pokemonLevel * 10;
            Bulbasaur.baseSPATK = Bulbasaur.pokemonLevel * 10;
            Bulbasaur.baseSPDEF = Bulbasaur.pokemonLevel * 10;
            Bulbasaur.baseSPEED = Bulbasaur.pokemonLevel * 10;

            pokemonTemplate Pikachu;
            Pikachu.pokemonName = "Pikachu";
            Pikachu.pokemonLevel = 5;
            Pikachu.baseATK = Pikachu.pokemonLevel * 7;
            Pikachu.baseDEF = Pikachu.pokemonLevel * 10;
            Pikachu.baseSPATK = Pikachu.pokemonLevel * 12;
            Pikachu.baseSPDEF = Pikachu.pokemonLevel * 6;
            Pikachu.baseSPEED = Pikachu.pokemonLevel * 15;
        };

「エラー: "フシギダネ"/"ピカチュウ" にタイプの名前がありません」というエラーが表示され続けます。これについて複数の質問を見てきましたが、どれもそれを修正していません。構造体を分離して、pokeDex 構造体内の pokemonTemplate 構造体を参照するだけにしてみましたが、うまくいきませんでした。

また、pokeDex を構造体ではなくクラスにしようとしました。また、pokemonTemplate 構造体をクラスの外側とクラスの内側に配置しようとしましたが、引き続きエラーが発生します。毎回、参照する前に pokemonTemplate 構造体を定義するように注意してきましたが、何か間違ったことをしているに違いありません。

4

1 に答える 1

0

class/struct宣言内のメンバーを初期化することはできません(実際、これらはここでの割り当てです) 。
行っているすべての初期化を削除します。ネストされたものが正常にstruct動作することを除いて。

コードを次のように変更します。

struct pokeDex 
{
    struct pokemonTemplate 
    {
      std::string pokemonName;
      std::string pokemonMoves[3];
      int pokemonLevel;
      int baseATK;
      int baseDEF;
      int baseSPATK;
      int baseSPDEF;
      int baseSPEED;
    };
    pokemonTemplate Bulbasaur;
    pokemonTemplate Pikachu;
};

そして、それらを初期化するために独自に作成するconstructorか、作業を行うためのいくつかのセッターメソッドを作成します。

于 2013-08-31T16:58:22.660 に答える