单例设计模式的单例类主要用于配置文件读写, 整个项目用一个对象就够了。
- 创建单例类
class MyClass
{
private:
MyClass(){}; //构造函数私有化
private:
static MyClass* m_instance;
public:
static MyClass* GetInstance()
{
if(m_instance == NULL)
{
m_instance = new MyClass();
static Del cl; //当程序结束时,cl对象会被删除
}
return m_instance;
}
/*类中套类,用于在程序退出前删除对象*/
class Del
{
public:
~Del()
{
if(MyClass::m_instance)
{
delete MyClass::m_instance;
MyClass::m_instance = NULL;
}
}
};
};
/*成员变量初始化*/
MyClass* MyClass::m_instance = NULL;
- 主函数
#include <iostream>
int main()
{
MyClass* instance = MyClass::GetInstance();
MyClass* instance2 = MyClass::GetInstance();
/*instance和instance2的地址一样,指向同一个对象*/
std::cout << instance << std::endl;
std::cout << instance2 << std::endl;
return 0;
}