通知
すべてクリア
Topic starter
2001年12月4日 3:40 AM
C++に関する質問です。
たとえば、
class A{
A a;
B b;
int hoge;
};
class B{
A a;
double hoge2;
}
ということをしたいのですが、このままかくと、
Bが定義されていません。みたいなことになります。
(環境:VC++)
もちろんA,Bの順番を変えると、Aが定義されていません。
となります。
このような時はどうすればいいのでしょうか。
よろしくおねがいします。
2001年12月4日 8:54 AM
出来ません。
A の中に B があって, B の中に A があったら、いつまでたっても終わらないです。
A::b, B::a のいずれかまたは両方をポインタにすれば出来ます。
class B;
class A{
B *b;
};
class B{
A *a;
};
2001年12月4日 1:05 PM
たしかにループにはまりますね。でも
class B;
class A
{
...
};
class B
{
...
};
↑こういうことを知りたいんじゃないでしょうか。
2001年12月5日 11:55 AM
> ↑こういうことを知りたいんじゃないでしょうか。
すみません、私の書き込みと同じに見えるのですが。どういうことでしょうか?
2001年12月5日 12:16 PM
確かに同じでした。
ポインタにしているというところばっかり目がいってて
見落としてました。すみません。
Topic starter
2001年12月7日 1:23 AM
返事が遅くなりましたが、
ありがとうございました。
とりあえず、解決しました。
(まだ、最後まで完成していないので、ほんとにうまくいっているかは
分からないのですが、大丈夫でしょうということで)
また、お願いするかもしれません。
これからもよろしくお願いします。