侧边栏壁纸
博主头像
wxc博主等级

多接近生活,远离互联网

  • 累计撰写 49 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论
标签搜索

目 录CONTENT

文章目录

记录c/c++的一个坑

wxc
wxc
2023-03-11 / 0 评论 / 0 点赞 / 136 阅读 / 137 字

先上代码

#include <iostream>
#include <memory>
class t{

    private:
        static std::unique_ptr<t> instance;
        t() = default;
    public:
        static void init(){instance.reset(new t());}
        static void quit(){instance.reset();}
        static t& getInstance(){return *instance;}
        ~t(){std::cout << "~t()" << std::endl;}
};

std::unique_ptr<t> t::instance = nullptr;

int main(){
    t::init();
    if(true){
        auto a = t::getInstance();
    }
    t::quit();
}
// output 
// ~t()
// ~t()

这里有一个严重的bug那就是会析构函数会调用两次,解决方法就是将auto a修改为auto &a,写auto进行类型推导的时候一定要注意这些

0

评论区