
C++初心者です。相互参照するクラス(構造体?)の作り方で悩んでいます。一般的な相互参照の解決法は沢山のサイトに載っているのですが・・・
よくある相互参照と解決法
---------------------
struct Test2;
struct Test1{
Test2 *t2;
};
struct Test2{
Test1 *t1;
};
---------------------
これはtest1の中でtest2を使いたい時にその前に名前だけとりあえず宣言しておけばOK(wave)、というもの。(間違ってたらご指摘お願いします。)
自分が現在どうすればいいか途方に暮れている相互参照
---------------------
struct Test2;
struct Test1{
int n;
Test2 *t2;
void Func1(Test2 *t2){
this->t2->m = 777;
}
};
struct Test2{
int m;
Test1 *t1;
void Func2(Test1 *t1){
this->t1->n = 777;
}
};
---------------------
ここでは各メンバ関数内でお互いのメンバを参照します。このときのエラーは、
「Test2のメンバは宣言されていないので、mはTest2のメンバではありません。」
です。これは
this->t2->m = 777;
の行に対するエラーです。
struct Test2;
の行でメンバまで宣言することができません。
どうすれば「Test2の中にmというメンバがあるって後で教えてあげるからちょっとまって」とコンパイラに伝えられるのか、教えてください。お願いします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構造体を引数とする、クラス間...
-
main.c:7:43: warning: implici...
-
【#define】 defineで定義した...
-
C++/CLIでネイティブの構造体を...
-
2重定義って??
-
構造体の要素すべてに対する四...
-
C++でboolにintの値を代入する...
-
C++のコンストラクタを宣言する...
-
C#でオセロを作っているのです...
-
64bit → 32bit型へのキャスト
-
DWORDの実際の型は何でしょうか
-
C言語のコンパイルエラー
-
相互参照するクラス、俺こんな...
-
24ビットの変数
-
long型の定数の末尾にLを付ける...
-
最早開始時間と最遅完了時刻を...
-
Aの値からBの値を除するとは??
-
信頼区間の1.96や1.65ってどこ...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
main.c:7:43: warning: implici...
-
long型の定数の末尾にLを付ける...
-
DWORDの実際の型は何でしょうか
-
visualstudio C# テキストボッ...
-
2重定義って??
-
C++のfor文について
-
変数の型を定義しなかった場合...
-
ハンドルされていない例外が発...
-
intとINTの違いは?
-
C++でboolにintの値を代入する...
-
構造体の要素すべてに対する四...
-
プログラムの中で別のmainを呼...
-
エラー「invalid conversion fr...
-
GCCで暗黙の型変換の警告を出し...
-
【#define】 defineで定義した...
-
sshdログの意味
-
DDVによるメッセージの変更
-
typedef enumの使い方を教えて...
-
構造体を生成時にわざわざ初期...
-
DLLでLIBファイルが作成されない
おすすめ情報