#include <iostream>
using namespace std;
class Singleton {
public:
static Singleton *instance();
int getTmp() {
return iTmp;
}
void incTmp() {
++iTmp;
}
void decTmp() {
--iTmp;
}
protected:
Singleton():iTmp(12) {}
private:
int iTmp;
static Singleton *_instance;
};
Singleton *Singleton::instance() {
if (_instance == NULL) {
_instance = new Singleton();
}
return _instance;
}
Singleton* Singleton::_instance = NULL;
int main() {
Singleton *obj1 = Singleton::instance();
Singleton *obj2 = Singleton::instance();
cout << "obj1: " << obj1->getTmp() << endl;
cout << "obj2: " << obj2->getTmp() << endl;
obj1->incTmp();
cout << "obj2: " << obj2->getTmp() << endl;
obj2->decTmp();
cout << "obj1: " << obj1->getTmp() << endl;
return 0;
}
单体模式的简单实现C++
最新推荐文章于 2024-07-14 15:36:20 发布