gpt4 book ai didi

C++:我应该使用全局变量还是类成员指针在模块之间进行通信?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:13:12 24 4
gpt4 key购买 nike

在我的项目中,我将多个子系统组织为类。

我需要这些类进行通信(以便能够通过指针访问另一个类),并且我希望以尽可能最好的方式实现它。

我在这里基本上看到了三种可能的解决方案:

  • 如果子系统 X 需要访问子系统 Y,则向类 X 添加一个成员变量,指向 Y 的一个实例。创建 X 时,将指向 Y 的指针传递给它,并让成员变量 m_pSystemY 设置。

  • 为每个子系统声明一个全局变量CSystemX * g_SystemX。它将在程序启动时填充指向新创建的子系统实例的指针。以后,您可以从任何地方轻松访问它。

  • 创建一个复杂的子系统管理器类。所有子系统都存储在一个数组中。您需要调用一个函数才能访问特定的子系统。

我的问题:

  • 我应该为我的游戏引擎项目使用这些解决方案中的哪一个?

  • 你们中有人对这些方法有亲身经历吗?

最佳答案

通过指向其他类的指针公开整个类将在整个系统中创建紧密耦合,从而打破“得墨忒耳法则”。您可能可以通过已知的设计模式使其变得更好,例如中介模式。只是一个想法...

关于C++:我应该使用全局变量还是类成员指针在模块之间进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5161776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com