最优 Single Instance 模式

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

除非万不得已不要使用全局对象,但是有时候也必须使用。全局对象有下面几种模式

1 直接声明全局对象

class GlobalObject;

2 类静态成员或者指针

class X

{

private:

static X _x;

static X* _px;

};

3 类成员函数局部静态

class X

{

public:

static X* getInstance()

{

static X _x;

return &_x;

}

}

第一种方法需要程序在启动main()时就调用.init .finit等code segment内指针执行全局对象的构造,即使没有用到也已经生成了,缺点不言而喻。

第二种方法,如果使用静态成员和第一种是一样的,使用指针能够避免该问题,但是释放的位置却不好确定。

第三种方法,C++ standard 标准明确要求了局部静态对象到第一次调用时才生成,避免了上述问题,结束时才采用和普通静态对象释放相同的方法释放。

似乎应该使用第三种方法了!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航