作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
单例类必须有私有(private)析构函数吗?
最佳答案
如果单例在全局范围内作为变量实现,它必须有一个公共(public) 析构函数。在全局范围内只能访问公共(public)成员。
如果它在自己的类中被声明为静态成员或静态本地,那么析构函数可能是私有(private)的。当程序退出时,析构函数在类范围内被调用,在那里它是可访问的。这是强制对象成为单例的一种方法。你需要强烈执行吗?如果是这样,是的。这取决于您所说的“强制”是什么意思。
class A{
private:
~A() {}
public:
static A &getGlobalA() {
static A a2; // <- or here - better technique
return a2; // this is initialized upon 1st access
}; // and destroyed on program exit
static A a; // <- constructor, destructor accessed from here
};
A A::a; // <- but "called" from here in terms of control flow
关于c++ - 单例类的私有(private)析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2559750/
我是一名优秀的程序员,十分优秀!