所谓的单体类也就是单例模式,就是一个类只能实例化一个函数。利用关键字static来实现。要想只能产生一个对象,只能把构造函数私有化,使用户不能在外部构造对象,同时也要防止用户利用拷贝构造函数初始化,所以也要把拷贝构造函数私有化。我们自己构造一个对象供用户调用。
class Single
{
public:
static Single& getIns(void)
{
return s;
}
private:
Single(void){}
Single (const Single&){}
static Single s;
};
Single Single::s;
int main(void)
{
Single& s1=Single::getIns();
}
在这里,为什么一定要用static呢,因为用户要使用我们提供的接口调用我们提供的唯一对象,只能利用static 修饰的函数来完成。