java里有说过单例,c++里有吗?如何写代码?

Programmerjacinth 2005-04-05 11:07:05
如题
...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZQGet 2005-04-06
  • 打赏
  • 举报
回复
//我的一个小游戏的地图类,游戏及源码下载:http://dev.e-sum.net/

//地图
class TMap {
// Singleton Pattern
private:
static TMap* FInstance;
typedef TCell TMapArray[TILE_NUM_X][TILE_NUM_Y];
TMapArray FMaps[LAYER_MAX+1];//地图图层数组
int FLevelNo; //目前加载的关卡编号
int FRole_X, FRole_Y; //角色的起始位置(平板的位置)

void setLevelNo(int Value);//设置关卡
//设置角色初始位置
void setRole_X(int Value);
void setRole_Y(int Value);
public:
TMap();
static TMap& Instance();
AnsiString getFileName(); //根据关卡编号返回对应的地图(关卡)文件
TCell &getCell(int Layer,int x, int y);//取得某一图层上的图格对象
void loadFromFile();//从文件中加载关卡信息
void saveToFile(); //将关卡信息保存到文件中
//绘制图层,bGrd表示是否显示网格线,bClear表示是否只显示当前层
void Draw(TCanvas* Canvas, int Layer,bool bGrd=true,bool bAllLayers=false);

//重置所有或某一层
void resetAllLayers();
void resetLayer(int Layer);
//向外界公开的关卡,角色位置属性
__property int LevelNo = {read = FLevelNo, write = setLevelNo};
__property int Role_X = {read = FRole_X, write = setRole_X};
__property int Role_Y = {read = FRole_Y, write = setRole_Y};

};
BrandyCao 2005-04-05
  • 打赏
  • 举报
回复
无论哪种语言都可以实现!
Salam2001 2005-04-05
  • 打赏
  • 举报
回复
class TheOnlyInstance
{
public:
static TheOnlyInstance* GetTheOnlyInstance();

protected:
TheOnlyInstance() { }
} ;

TheOnlyInstance* TheOnlyInstance::GetTheOnlyInstance()
{
static TheOnlyInstance objTheOnlyInstance;
return &objTheOnlyInstance;
}

这样就只能用 TheOnlyInstance::GetTheOnlyInstance() 得到 TheOnlyInstance 类的唯一实例...
oyljerry 2005-04-05
  • 打赏
  • 举报
回复
singleton模式
Programmerjacinth 2005-04-05
  • 打赏
  • 举报
回复
哦,明白了,是一种设计模式来着,多谢!

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧