灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3656回复:0

[C++技术]C++中单一对象构建

楼主#
更多 发布于:2013-02-20 13:14
在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();

喜欢0 评分0
游客

返回顶部