我想了解是否有任何单一的方法来处理循环依赖?
问题:出于某种原因,项目中的类型之间存在交叉引用。尽管事先对架构进行了规划,但有时仍会发生这种情况。这样的引用并不总是错误的。
这种情况最令人沮丧的是,在大多数情况下,编译器会给你大量的通知。同时,通知指向错误的地方,只有经验有助于或多或少地快速了解原因是循环依赖。
此外,许多人经常忘记它#pragma once
可以防止多重包含,而不是防止循环依赖。
例如,有一个场景有一个打架,有一个打架,打架包含一个到父场景的链接:
// BattleScene.hpp
class BattleScene
{
private:
Battle battle;
};
// Battle.hpp
class Battle
{
private:
BattleScene &parent;
};
处理此类问题的一般方法是什么?