ex:设计一个类:
1、只能产生一个对象
2、在任何地方都能使用到这个对象
#include#include using namespace std; class Sun { public : static Sun* get_sun() { if (nullptr == _only_sun)//双重判断,因为加锁代价有点大 { _lock->lock();//加锁 if (nullptr == _only_sun) { _only_sun = new Sun(); } _lock->unlock();//解锁 } return _only_sun; } private: static mutex* _lock;//线程锁,锁的指针 //lock,unlock static Sun* _only_sun; int _fire; Sun()//每产生一个对象,就会调用一次构造 { } }; Sun* Sun::_only_sun = nullptr;//利用作用域访问 mutex* Sun::_lock = new mutex();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)