c++实现只有单个实例的类

   实现一个只能被实例化一次的类,并且提供一个方法是客户端访问这个类。

   通过把构造函数定义为私有函数禁止外部访问构造函数也就是禁止从外部创建类。并且提供一个公有的静态函数,客户通过这个静态函数来创建这个唯一的类或是得到指向这个类的唯一类实例的指针。下面是具体的实现代码:

 

#include <iostream>
using namespace std;

class Singleton
{
public:
 static Singleton* getins();
 int getval()
 {
  return val;
 }
 void setval(int value)
 {
  val=value;
 }

protected :
 int val;

private:
 static Singleton* ins;
 Singleton():val(0){};
};

Singleton* Singleton::ins=NULL;
Singleton* Singleton::getins()
{
 if(ins==NULL)
 {
  ins=new Singleton();
 }
 return ins;
}

int main()
{
 Singleton* p1=Singleton::getins();
 p1->setval(10);
 Singleton* p2=Singleton::getins();
 cout<<"value "<<p2->getval()<<endl;
 p2->setval(100);
 cout<<"value "<<p1->getval()<<endl;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值