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