在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();
|