开发伙伴平台: 60系列开发平台 1.0/2.0
设备, 软件 版本: 无
大类: Symbian C++
子类: 普通
说明:
下列代码演示了一个单独的对象,它的NewL函数利用TLS来测试自身类型的对象是否被生成过。如果是,则返回存储在TLS中的指针(将其转换为自身类型),如果没有,则它将实例化一个自身类型的对象,并将指针存储在TLS中,并返回它。
注意这里假设没有其他类在这个DLL中(该DLL包含了使用TLS的类),如果不是这样,则必须写一个单独的管理类,它使用TLS存储一个结构指针,其指向所有程序中需要的单独类。
Example 1: Singleton implementation based on TLS
==============
CMySingleton.h
==============
class CMySingleton : public CBase
{
public: // constructor and destructor
static CMySingleton* NewL();
virtual ~CMySingleton();
private: // constructors
CMySingleton(); // private because of the singleton pattern; it is
// guaranteed that only NewL will call it
void ConstructL();
public: // other functions
...
private: // other functions
hoolee语:著名的helix播放器就使用了这个技术。