c++单例模式为什么不在析构函数中释放静态的单例对象,而要加一个内嵌类 60

 我来答
开发个吧
2021-09-06 · 超过24用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:38.2万
展开全部
析构里delete实例,这个实例释放是会掉自己的析构的,析构里又有delete,这样就无限递归了
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
晒在衣架的委屈
2015-09-23
知道答主
回答量:3
采纳率:0%
帮助的人:3869
展开全部
单件的实例是存储在堆中的,不会自动析构
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无聊的韬
2021-09-14 · TA获得超过750个赞
知道小有建树答主
回答量:265
采纳率:100%
帮助的人:99.7万
展开全部
class GarbageCollector
{
public:
GarbageCollector()
{
qDebug() << "init GarbageCollector";
}

~GarbageCollector()
{

if (Variable_Manager::sVariableManager != nullptr)
{
qDebug() << "del GarbageCollector";
delete Variable_Manager::sVariableManager;
Variable_Manager::sVariableManager = nullptr;
}
}
};
static GarbageCollector gc;//作为静态,会在程序内生存。作为栈对象,会在程序结束自动析构(顺便把sVariableManager堆对象带走)

代码内嵌在单例的类中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-03-14
展开全部
单例模式通过类本身来管理其唯一实例,这种特性提供了解决问题的方法。唯一的实例是类的一个普通对象,但设计这个类时,让它只能创建一个实例并提供 对此实例的全局访问。唯一实例类Singleton在静态成员函数中隐藏创建实例的操作。习惯上把这个成员函数叫做Instance(),它的返回值是唯 一实例的指针。
定义如下:
class CSingleton
{
//其他成员
public:
static CSingleton* GetInstance()
{
if ( m_pInstance == NULL ) //判断是否第一次调用
m_pInstance = new CSingleton();
return m_pInstance;
}
private:
CSingleton(){};
static CSingleton * m_pInstance;
};
追问
我说的是释放
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式