线程安全
#include <iostream> #include <process.h> #include <windows.h> using namespace std; class Singelton { private: static Singelton *single; public: static Singelton *GetSingelton(); void print_addr() { printf("%d\n", single); } ~Singelton() { printf("deconstructor singleton\n"); } }; Singelton *Singelton::single = new Singelton; Singelton *Singelton::GetSingelton() { return single; } int main() { Singelton *test = Singelton::GetSingelton(); test->print_addr(); Singelton *test1 = Singelton::GetSingelton(); test1->print_addr(); system("pause"); return 0; }
非线程安全
#include <iostream> #include <process.h> #include <windows.h> using namespace std; class Singelton { private: static Singelton *single; public: static Singelton *GetSingelton(); void print_addr() { printf("%d\n", single); } ~Singelton() { printf("deconstructor singleton\n"); } }; Singelton *Singelton::single = nullptr; Singelton *Singelton::GetSingelton() { if (single == nullptr) { single = new Singelton; } return single; } int main() { Singelton *test = Singelton::GetSingelton(); test->print_addr(); Singelton *test1 = Singelton::GetSingelton(); test1->print_addr(); system("pause"); return 0; }
原文链接: https://www.cnblogs.com/r1-12king/p/13355982.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/369142
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!