lichuangdada 2022-01-17 19:57 采纳率: 100%
浏览 35
已结题

c++ 特殊的单例模式

SystemAbilityManagerClient& SystemAbilityManagerClient::GetInstance()
{
static auto instance = new SystemAbilityManagerClient();
return *instance;
}

这个是单例模式吗?如果是请解释为什么?

  • 写回答

3条回答 默认 最新

  • _GX_ 2022-01-17 20:24
    关注

    这是单例模式。当第一次调用SystemAbilityManagerClient::GetInstance()时,初始化静态变量instance创建一个SystemAbilityManagerClient对象。之后再调用SystemAbilityManagerClient::GetInstance()就直接返回instance所指的对象。

    另外支持C++11的编译器,可以直接这样写

    SystemAbilityManagerClient& SystemAbilityManagerClient::GetInstance()
    {
        static SystemAbilityManagerClient instance;
        return instance;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月28日
  • 已采纳回答 1月20日
  • 创建了问题 1月17日