我正在尝试创建一个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>
?