Info<P,S>
タイプ の別のオブジェクトへのポインターを保持するクラスを作成しようとしていますInfo<S,P>
。次のコードがあります。
template <class P, class S>
class Info {
….
public:
Info(…, Info<S,P>* parentInfo) : …, parentInfo(parentInfo)
{}
…
private:
Info<S, P> *parentInfo;
};
….
typedef Info<ActualP, ActualS> OneInfo;
typedef Info<ActualS, ActualP> OtherInfo;
…
OtherInfo* parentInfo =…;
OneInfo info(…, parentInfo);
これはコンパイルではなく、コンストラクターが有効なものではないと言っています (呼び出し時)。
これにより、解決しようとしているときに無限再帰が発生すると思います。私は正しいですか?Info<S,P>
から参照するこの意図を実装するための代替手段は何Info<P,S>
ですか?