【发布时间】:2014-06-23 04:29:01
【问题描述】:
我正在尝试在 C++ 中实现单例模式。
static class_test* getinstance()
{
static class_test single_obj;
return &single_obj;
}
如果我想创建单例对象,我会使用这种方法。
class_test *c = class_test :: getinstance();
因此确保每次都维护单个对象。
但在同一个程序中我使用了以下语句
class_test test;
这似乎也有效。我认为这违反了单例模式。
我的理解正确吗?
或者单例模式的实现是程序员的手?
【问题讨论】:
-
你在网上搜索过“c++ singleton”吗?有很多例子可以比较。
-
您可以通过将构造函数设为私有来防止多个实例,因此只有访问器函数(静态成员)可以创建它。但是think twice 关于反模式在您的程序中是否有意义。
-
单例只是修饰全局变量的一种奇特方式。
-
只有在全局可访问的情况下。单例意味着应该只有一个实例。它仍然可能是依赖注入的。