#include <iostream>
//单例模式: 指一个类只能创建一个类对象,则这个类就是单例
//第一种方式:
class Frame
{
static Frame* one;
//构造函数要私有
Frame(){}
//拷贝构造要私有
Frame(const Frame& that){}
//.......
public:
static Frame* GetOne()
{
if (one == 0)
one = new Frame;
return one;
}
//销毁
static void Release()
{
if (one)
{
delete one;
one = 0;
}
}
//.....
};
Frame* Frame::one = 0;
void main()
{
Frame* p = Frame::GetOne();
Frame::Release();
}
//第二种方式:
class Frame2
{
Frame2(){p = new int[10];}
Frame2(const Frame2& that){}
public:
static Frame2* GetOne()
{
static Frame2 one;//静态成员变量,只在静态内存区中有一份
return &one;
}
int* p;
~Frame2()
{
delete [] p;
}
};
void test()
{
Frame2* p = Frame2::GetOne();
}