我遇到了类型的循环引用问题。对于以下的implmentation:模板类中的循环依赖项
// Parent.h
template <typename OtherType>
class EnclosingType
{
public:
typename OtherType type_;
};
class OtherType
{
public:
EnclosingType & e_;
OtherType (EnclosingType & e) : e_(e) {}
};
要求是OTHERTYPE采取EnclosingType的一个对象的引用,以便它可以调用EnclosingType方法和EnclosingType可以OTHERTYPE调用方法。主要目标是允许实施者提供他们自己的OtherType派生类型。
处理这种类型的循环依赖存在的情况下,最好的方法是什么?什么是OtherType的正确声明?什么是OtherType :: EnclosingType的正确声明? Enclosing :: OtherType :: type_的正确声明是什么?我甚至需要做甚么?
谢谢。
'EnclosingType'不是一个类型;这是一个模板。它没有办法。 'OtherType'也没有方法。我不明白你想要做什么。 – melpomene
检查CRTP,这可能对这种情况很有帮助,但我不太确定它是否会帮助您解决问题。 https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern –