rockstone

上善若水,水利万物而不争

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

当实现一个类后,定义一个全局的对象吗?

NO。。。用好static。

我们可以这样定义一个类:

class myclass

{

protected:

        myclass();

public:

        ~myclass();

        static myclass& Instance() {static myclass single; return single;}

        void fun();

}

将构造函数声明为protected,防止局部实例被创建,只能通过Intance函数获得实例,在Instance()函数里创建了一个static的对象,这样在使用这个全局唯一对象时,就可以这样:

myclass::Instance().fun();

这样在任何地方使用这个对象,都可以保证唯一性。

posted on 2010-01-15 21:10  rockstone  阅读(337)  评论(0编辑  收藏  举报