C++ 单例模式

xiaoxiao2021-02-28  30

C++ 单例模式

小明家有一只猫小黑,他邻居小胖家没有,但是小黑会跑去小胖家吃鱼,当然在自己家也吃鱼,但是鱼是不是不同的鱼,猫是同一只猫。定义一只猫CAT的单例模型。

class CAT { public:     static CAT *instance();     ~CAT(); private:     cat();     void eatFish();     void run();  }; CAT *CAT::m_cat = NULL; CAT *CAT::instance() {     if (m_model == NULL) m_cat = new CAT();     return m_cat; } CAT::CAT() { } void CAT::eatFish() {     std::cout <<“cat eat fish”<<endl; } void CAT::run() {     std::cout <<“cat is running ”<<endl; } CAT::~CAT() { } void main() {     std::cout<<"xiao pang say:"<<CAT::instance->eatfish();     std::cout<<"xiao ming say:"<<CAT::instance->eatFish(); }

这个单例在单线程模式是是安全的,在多线程模式下存在问题。

懒汉模式:

饿汉模式:

转载请注明原文地址: https://www.6miu.com/read-2621816.html

最新回复(0)