C++中单调对象构建

C++中单一对象构建在C使用类函数时,常常会在不同类的多个函数中不断的使用某一类的某些函数,则往往需要不

C++中单一对象构建

在C++使用类函数时,常常会在不同类的多个函数中不断的使用某一类的某些函数,则往往需要不断的创建该类的对象。

为了避免这种重复创建的过程,以下介绍两种方法来构建单一对象或单一实例。

 

方法一:

Class CAClass

{

....

void DoSth(); 

friend CAClass& GetCA();

};

 

CAClass& GetCA()

{

static CAClass ca;

return ca;

}

 

void CAClass::DoSth()

{

......
}

 

使用方法

GetCA().DoSth();

 

方法二:(设计模式单一实例法)

Class CAClass

{

protect:

CAClass(){}

 

Public:

static CAClass* Instance();

static CAClass* Extance();

private:

static CAClass* _ins;

pubic:

....

void DoSth();

};

 

CAClass* CAClass::_ins = 0;

CAClass* CAClass::Instance()

{

if(_ins == 0)

_ins = new CAClass();

return CAClass;
}

 

CAClass* CAClass::Extance()

{

if(_ins !=0)

delete _ins;

}

使用方法

CAClass* caTemp = CAClass::Instance();

caTemp->DoSth();