3

ネストされた構造を設定し、その構造の配列を初期化するプログラムを作成しようとしています。それは私にいくつかの奇妙なエラーを与えています。関連するすべてのコードは次のとおりです。

//Structure called Stats for storing initial character stats
struct Stats{
    string name;
    int level;
    int HP;
    int STR;
    int CON;
    int DEX;
    int INT;
    int WIS;
    int CHA;};

//Structure called Growth for storing character growth per level.
struct Growth{
    int HPperlvl;
    int STRperlvl;
    int CONperlvl;
    int DEXperlvl;
    int INTperlvl;
    int WISperlvl;
    int CHAperlvl;};

struct Holdstats{
    Stats classstats;
    Growth classgrowth;};

const int SIZE = 10;

Holdstats classlist[SIZE];

Holdstats charlist[SIZE];

//Define initial classes, to be stored in the Classes structure
classlist[0].classstats = {"Fighter", 1, 18, 10, 10, 10, 10, 10, 10};
classlist[0].classgrowth = {1,1,1,1,1,1,1};

classlist[1].classstats = {"Wizard", 1, 10, 10, 10, 10, 10, 10};
classlist[1].classgrowth = {1,1,1,1,1,1,1}

私のコンパイラは、「classlist [0] .classstats」と入力すると、サイズ0の配列を初期化しようとしていると考えています。これを読み取る方法では、クラスリスト配列の最初の要素にアクセスしようとしています。これは正しく書かれていますか?

誰かがそのような配列がどのように見えるかの短い例を私に教えてくれたら素晴らしいと思います。そこから私はそれをベクトルとして書くことを考えています

4

2 に答える 2

2

すべてのタイプが何であるかを示したわけではありませんが、この基本的なアプローチを取ることができるはずです。

Holdstats classlist[SIZE] = {
    { {"Fighter", 1, 18, 10, 10, 10, 10, 10, 10}, {1,1,1,1,1,1,1} },
    { {"Wizard", 1, 10, 10, 10, 10, 10, 10}, {1,1,1,1,1,1,1} },
}
于 2012-12-10T20:07:01.397 に答える
0

あなたの構造Holdstats体はタイプclassstatsとの他の2つの構造体を保持していますclassgrowth。これらは配列ではなく構造体であることを忘れないでください。したがって、なぜそれらを次のように割り当てるのか完全にはわかりません。

classlist[0].classstats = {"Fighter", 1, 18, 10, 10, 10, 10, 10, 10};

holdstats 構造体自体の中に stats 構造体を記入したいと思います。これは以下で行われます。

classlist[0].classstats.health = 15; //guessing you have a member named health
//OR if you create a constructor for you classstats with the proper copy constructor
classlist[0].classstats = classstats("Fighter", 1, 18, 10, 10, 10, 10, 10, 10);
//OR if you have an assign function
classlist[0].classstats.assign("Fighter", 1, 18, 10, 10, 10, 10, 10, 10);
于 2012-12-10T20:05:30.357 に答える