我在树形结构中有许多项目。我可以在树迭代中逐个读取和写入它们。但是,类Item中有引用指针,如下所示
class Item
{
Item* m_refItem;
...
};
如果引用的项位于树中的引用项之前,我们可以在读写中使用引用项的索引,如下所示
void read()
{
Index index;
in >> index;
m_refItem = getItem(index);
}
但是,如果引用的项位于引用项之后,则在读取引用项时,不会构造引用的项,并且getItem(index)方法会给出错误的结果。在这种情况下如何进行阅读和写作?
答案 0 :(得分:2)
您可以分两个阶段完成:
代码:
class Item {
union {
Item* m_refItem;
int _index; }
void read_phase_one(stream in) {
in >> _index; }
void read_phase_two(vector vect) {
m_refItem = vect[index]; }