我遇到了類型的循環引用問題。對於以下的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 –