c++编写一个单例模式(学习记录一下)

chenweimin 8月前 ⋅ 484 阅读

编写头文件Singleton.h

/*单列模式*/

class Singleton {
public:
	/*暴露给外部获取实例*/
	static Singleton* getInstance();
private:
	/*私有构造*/
	Singleton();
	/*私有拷贝构造*/
	Singleton(const Singleton& single);
	//默认实例对象
	static Singleton* singletoner;
};

编写实现文件Singleton.cpp

#include "Singleton.h"


Singleton::Singleton() {};

Singleton::Singleton(const Singleton& single) {};

//暴露给外部获取实例方法
Singleton* Singleton::getInstance() {
	return singletoner;
}

//实例静态成员变量
Singleton* Singleton::singletoner = new Singleton();

编写测试类main.cpp

#include "Singleton.h"
#include <iostream>
using namespace std;
int main() {
	Singleton* s = Singleton::getInstance();
	Singleton* s1 = Singleton::getInstance();
	if (s==s1) {
		cout << "s==s1" << endl;
	}

	return 0;
}

全部评论: 0

    我有话说: