通知
すべてクリア
Topic starter
2006年3月13日 3:51 PM
VC++を使用しています(C++自体初心者です)。
構造体aがメンバとして構造体aへのポインタ、構造体bへのポインタを含み、
構造体bがメンバとして構造体aへのポインタを含むとき、
どのように宣言すればよいのでしょうか。
とりあえず
typedef struct a{
a* m_a;
b* m_b;
};
typedef struct b{
a* m_a;
};
としてコンパイルしてみました。
「構文エラー;';'が'*'の前にありません。」や、
「識別名を宣言するのに、型が指定されていません。」といったエラーメッセージがでて
きます。
どなたかご教授お願いします。
2006年3月13日 3:56 PM
struct a の中では、まだ struct bが何者かわからない状態ですので、
struct b;
struct a
{
a* m_a;
b* m_b;
};
struct b
{
a* m_a;
};
としてみてはどうでしょうか?
ところで、typedefの使い方おかしくないでしょうか?
Topic starter
2006年3月13日 4:04 PM
ああ、コンパイル通りました。
迅速なお返事をどうもありがとうございました。
typedef、確かにおかしいです。
もともと違う形で書かれていたものをコピーして修正して使っていたのですが・・・
修正にもなってませんでしたね。
ありがとうございます。