在 C++ 中,我使用单例类并引用另一个类中的唯一实例。我想知道访问此实例的最有效方法是什么,因为它是一个大型数据结构。我考虑了这些事情。
- 从单例类获取引用,而不是按值传递数据结构
在我的第二个使用单例类的类中使用全局实例:
Singleton* singleInstance; SingletonUser::SingletonUser () { singleInstance = Singleton::getInstance(); //passes the single instance by reference, then it will be used in the class wherever needed }
在第二个类的函数内做同样的事情,这样我就可以在需要时获得对单例类实例的引用(需要在多个函数中多次访问它)。
<
我不确定哪种做法最好。有人可以解释一下吗,如果有更有效的方法,也可以解释一下吗?
谢谢!
最佳答案
如果您按值传递单例实例,那么它就不是真正的单例,对吗?
当您需要访问实例时,只需返回一个实例的引用(或指针)(#1)。为每个客户端缓存一次引用只会增加复杂性,而且几乎肯定不会更快。
除了增加了复杂性之外,我不确定 #1 和 #3 之间的区别是什么。两者都使用函数通过引用/指针访问单例实例。
关于c++ - 使用单例类的最有效方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9042896/