当实现一个类后,定义一个全局的对象吗?
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();
这样在任何地方使用这个对象,都可以保证唯一性。