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:尽管如此,这种模式也能起作用。 –
这就是你如何去做的,但如果你解释为什么*,答案会更好。 –