gpt4 book ai didi

c++ - 如何在 C++ 中的多个类之间共享一个实例,而不是使用单例模式

转载 作者:太空宇宙 更新时间:2023-11-04 13:16:10 31 4
gpt4 key购买 nike

现在我正在开发一个 C++ 应用程序,我面临着共享实例的问题。

针对这个问题,我创建了一个简单的类图。我想为 A 类和 C 类共享 HogeDataManager。A 创建 HogeDataManager 并通过其公共(public)方法读取 HogeData。 B 向 HogeDataManager 添加一些数据。

为了共享HogeDataManager,我必须为B和C准备set_mgr方法。但我认为这不是一个聪明的方法。当然如果我采用单例模式,就可以解决了。但是单例有时是危险的,所以我想找到更好的方法来避免这样的问题。

enter image description here

最佳答案

你的设计不错:A 创建 HogeDataManager,并将其接管给 B,B 接管给 C。只是缺少决定,对象 A、B 或 C 有责任最终销毁 HogeDataManager。如果您不同意,A 必须创建和销毁 HogeDataManager,那么您需要在 B 和 C 中使用 unset_mgr()。

关于c++ - 如何在 C++ 中的多个类之间共享一个实例,而不是使用单例模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37295063/

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