【发布时间】:2013-03-03 15:36:43
【问题描述】:
随着我对编码的了解越来越多,我喜欢进行试验。我有一个程序在它的运行时只需要一个结构的单个实例,并且想知道是否可以创建一个单例结构。我在互联网上看到了很多关于制作单例类的信息,但没有看到关于制作单例结构的信息。这可以做到吗?如果有,怎么做?
提前致谢。哦,顺便说一句,我使用 C++ 工作。
【问题讨论】:
-
请记住,在 C++ 中,
class和struct是相同的。唯一的区别是struct默认成员为public。 -
这是否意味着您可以将方法放入结构中? (如果它们是“相同的”)。而且,如果是这样,那么我可以在结构中执行运算符重载之类的操作吗?
-
请注意,在 C++11 之前,静态初始化不是线程安全的,因此如果您从多个线程调用
singleton::get_instance(),您需要一个互斥锁来防止竞争条件。 -
@JoachimPileborg 和继承默认为
public。