0

構造体アイテムを使用する場合:

struct item
{
    item();
    ~item();
    char * name;
    char * effect1;
    char * effect2;
    char * effect3;
    char * effect4;
    int count;
};

コンストラクターで:

item::item()
{
    name = NULL;
    effect1 = NULL;
    effect2 = NULL;
    effect3 = NULL;
    effect4 = NULL;
    count = 0;
}

名前にカーソルを合わせると、次のように表示されます。

char* name() const

効果のいずれかにカーソルを合わせると、次のように表示されます。

char* effectx

違いが私のプログラムの他の領域で問題を引き起こしていると信じているので、なぜこれが起こっているのか疑問に思っています. ありがとうございました。

4

1 に答える 1

1

あなたが提示した宣言は、IDE が見ているコードとまったく同じではないと思います。この問題に取り組む良い方法の 1 つは、コードを別の作業ファイル (別のプロジェクト内) に複製し、すべてのコード (宣言と問題を示すサンプル コードの両方) を同じファイルに移動することです。次に、コードの無関係な部分を削除して、まだ問題を示している最小の最も凝縮された例にゆっくりと移動します。

次に、そのコードを質問の更新として投稿してください。

一方、コンストラクターを正しく定義していません。それは正しいですが、最高のスタイルではありません。コンストラクターの本体でメンバーを初期化しないでください。次のように初期化します。

item::item()  : 
 name(NULL), effect1(NULL), effect2(NULL), effect3(NULL), effect4(NULL), count(0)
{
  /* nothing in the body. */
}
于 2012-05-21T20:37:40.527 に答える