处理父/子类关系中的循环包含

Pie*_*ter 4 c++ circular-dependency

假设我做了一个与之Parent有组合关系的课程Child.父类包含子项列表.

我希望所有孩子都拥有对父母的引用,所以每个孩子都有一个Parent指针.

这将导致循环包含.我Childparent.h引用,我Parentchild.h引用.因此Parent需要包含Child,其中需要包含Parent.

解决这个问题的最佳方法是什么?

And*_*nck 8

你必须使用前瞻声明:

//parent.h
class Child; //Forward declaration
class Parent
{
    vector<Child*> m_children;
};

//child.h
class Parent; //Forward declaration
class Child
{
    Parent* m_parent;
};
Run Code Online (Sandbox Code Playgroud)