单例模式:代码中注释明确。
C++中的static关键字要搞熟。
单例模式代码:(带释放内存)
#include<iostream>
using namespace std;
class singlecase
{
class clean
{
public:
~clean()
{
if(singlecase::p){
delete singlecase::p;
singlecase::p = NULL;
}
}
};
private:
//构造函数私有化
singlecase(){}
private:
//创建singlecase类型静态指针变量用来保存唯一实例
//类内定义
static singlecase *p;
public:
//定义静态成员函数访问静态指针变量
static singlecase* getp(){
if(p == NULL){
//唯一类对象实例化
p = new singlecase();
//借助其他类对象在生命周期结束时调用析构函数间接释放singlecase的唯一对象
static clean c1;
}
return p;
}
void test()
{
cout<<"测试"<<endl;
}
};
//类外初始化
singlecase* singlecase::p= NULL;
int main()
{
//单例模式
singlecase *tmp = singlecase::getp();
tmp->test();
system("pause");
return 0;
}