0
有沒有辦法避免這種循環引用?我不能使用foward聲明,因爲我正在訪問positionBlock在PositionBlockIterator裏面的方法...迭代器模式 - 循環引用
我知道我可以創建一個PositionBlock接口,然後在PositionBlockIterator(多態性)中使用它。但還有另一種方式嗎?
class PositionBlockIterator{
private:
PositionBlock *posBlock;
public:
PositionBlockIterator(PositionBlock *posBlock_){
posBlock = posBlock_;
}
/* functions to iterate over positionblock, using posBlock->... */
}
class PositionBlock
{
public:
PositionBlockIterator * createIterator(){
return PositionBlockIterator(this);
}
}
看起來橡膠的問題是專門用'/ *函數... * /',他們沒有向我們展示。 :)(我在猜測) –
@DrewDormann:儘管如此,這種模式也能起作用。 –
這就是你如何去做的,但如果你解釋爲什麼*,答案會更好。 –