C ++ - 相互对象包括

时间:2017-10-12 02:54:27

标签: c++ class definition

我对C ++很陌生,遇到了以下问题:

class School
{
 Manager manager;
}

class Manager
{
 School school;
}

它需要无限内存,并会导致不必要的无限循环

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

1 个答案:

答案 0 :(得分:1)

class School;
class Manager
{
    std::weak_ptr<School> school;
};
class School
{
    std::shared_ptr<Manager> manager;
};

根据您的目的,您可能希望使用Manager中的shared_ptr和School中的weak_ptr,但概念保持不变。

相关问题