第2のテンプレート質問、何N00B:テンプレート循環依存の問題
私はテンプレートクラスを持っている:
template <class T>
class foo{
private:
//...
T SubFoo;
//...
};
私はまた、MyClassのと呼ばれるクラスを持っています。私は種類のオブジェクトを持っているしたいと思います:
foo<myClass> myObject;
をしかし、ここで問題だ、私はmyObject.SubFooからmyObjectというのポインタを取得できるようにしたいと思います。つまり、クラスmyClassのメンバーの1人は、テンプレートクラスfooのインスタンス化でなければなりません。
だから私は行うことができます。エラー: 'FOO :: SubFooは' 不完全な型
を持ってclass myClass{
//...
foo<myClass>* point2myClass;
}
をしかし、./foo.h:103
ので、これは動作しないようですのMyClassを定義し、プログラムはライン
foo<myClass>* point2myClass;
を見つけるとそれがfooのdefintionに行くと、それF INDS:
T SubFoo;
しかしTは、この場合にはMyClassのは、まだ定義されていない(つまり、プログラムが何をしていたかである!)、それは、Tが何であるかわからないので、エラー。
宣言の順序を入れ替えると、 "foo"が定義されないため失敗します。
どうすればこの作業を行うことができますか?
ありがとうございます!
コード例は正確ですか?あなたはあなたが得ているエラーを得るべきではないからです。 –