首页 > 解决方案 > 函数中的静态数据何时销毁

问题描述

我正在学习如何用 C++ 实现单例,我已经阅读了这个链接:C++ Singleton design pattern

我有一个问题:为什么“Meyers Singleton”会保证销毁?

class S
{
    public:
        static S& getInstance()
        {
            static S    instance;
            return instance;
        }
    private:
        S() {}
        S(S const&);  
        void operator=(S const&);
 };

在我看来,在这种情况下,变量的销毁时间instance也是失控的。这意味着它在主要返回后被销毁。如果我是对的,为什么它可以被视为guaranteed-destruction

class S
{
    public:
        static S& getInstance()
        {
            return instance;
        }
        S() {}
    private:
        static S instance;
        S(S const&);  
        void operator=(S const&);
 };

 S S::instance = S();

这也是保证毁灭吗?

标签: c++singletondestructor

解决方案


推荐阅读