单实例类的设计_单厂课程设计实例
单实例类的设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单厂课程设计实例”。
单实例类要求类只能有一个对象。这种类主要用来替代全局变量。例如一台电脑只有一个键盘,一个鼠标等等“有且只有一个的问题”。
我们可以将构造函数设置为私有的,这样就让类没有对象了。那么怎么让类“有且只有一个对象”呢?
使用静态函数,在这个静态函数中新建类的对象,如果已经新建了类的对象就不再新建,如果还没有新建类的对象那么就新建一个类的对象。这样一来,当我们需要使用这个类的使用就调用这个静态函数就可以了。无论你调用多少次,这个类都只用一个对象实例的。
那么为什么要使用静态函数呢?静态函数可以直接用类型调用,避免了建立类的对象后才能调用的弊病了。
以下是一个单实例类的示例代码:
//////////////////////////////////////////////////////////////////////////
#include
using namespace std;
cla A
{
public:
static A* GetInstance();
private:
};
A *A::m_pInstance=NULL;
A::A(){
}
A* A::GetInstance(){ A();static A *m_pInstance;
static bool isCreate=false;if(isCreate==false){isCreate=true;m_pInstance=new A();//将新建对象的任务交给函数处理了,而不是在定义的时候就静态的新建好了
}
void main()
{
A *p=A::GetInstance();//用动态的方式新建类的对象,保证了有且只有一}//保证每次返回同一个地址 return m_pInstance;个的问题了
}
//程序中讲static运用的十分的精妙
//////////////////////////////////////////////////////////////////////////
对于上诉类的设计方法需要好好揣摩,还要复习static关键字的特性。