2020-03-02 17:50:52 来源:范文大全收藏下载本文
单实例类要求类只能有一个对象。这种类主要用来替代全局变量。例如一台电脑只有一个键盘,一个鼠标等等“有且只有一个的问题”。
我们可以将构造函数设置为私有的,这样就让类没有对象了。那么怎么让类“有且只有一个对象”呢?
使用静态函数,在这个静态函数中新建类的对象,如果已经新建了类的对象就不再新建,如果还没有新建类的对象那么就新建一个类的对象。这样一来,当我们需要使用这个类的使用就调用这个静态函数就可以了。无论你调用多少次,这个类都只用一个对象实例的。
那么为什么要使用静态函数呢?静态函数可以直接用类型调用,避免了建立类的对象后才能调用的弊病了。
以下是一个单实例类的示例代码:
//////////////////////////////////////////////////////////////////////////
#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关键字的特性。
人人范文网 m.inrrp.com.cn 手机版