C++中的單例模式

#include <iostream>
#include <memory>

class singleton {
public:
    singleton() = default;

    // 禁止拷貝構(gòu)造
    singleton(singleton const &) = delete;

    // 禁止賦值
    singleton &operator=(singleton const &) = delete;

    virtual ~singleton() = default;
public:
    // 返回智能指針,保證創(chuàng)建的對象可以被銷毀
    static std::shared_ptr<singleton> get_instance() {
        static std::shared_ptr<singleton> ins(new singleton());
        return ins;
    };

// for test
public:
    void hello() {std::cout << "hello, world!" << std::endl;}
};

int main() {
    auto s = singleton::get_instance();
    s->hello();

    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容