当前位置: 首页 > news >正文

深圳做网站比较好天涯沈阳网站制作招聘网

深圳做网站比较好天涯,沈阳网站制作招聘网,wordpress汉字注册,老山网站建设1.单例模式概念 定义:单例模式是一种常见的设计模式,它可以保证系统中一个类只有一个实例,而且该实例易于外界访问(一个类一个对象,共享这个对象)。 条件: 只有1个对象易于外界访问共享这个对…

1.单例模式概念

定义:单例模式是一种常见的设计模式,它可以保证系统中一个类只有一个实例,而且该实例易于外界访问(一个类一个对象,共享这个对象)。
条件

  1. 只有1个对象
  2. 易于外界访问
  3. 共享这个对象

使用情况:如果希望某个类只有一个对象,就可以使用单例模式。
**案例:**windows的任务管理器,可以重复打开,但是只会出现一个

2.代码分步骤编写

class Person{};void test(){Person p1;Person p2;Person p3 = new Person;
}

正常代码框架如上所示,这样这个类就不止一个对象的,所以第一步:

  1. 将默认构造函数私有化:防止创建多个对象
class Person{
private:Person(){};
};void test(){//Person p1;   //默认构造函数私有化,都不能创建了//Person p2;//Person* p3 = new Person;  
}

但是这样一个对象都没有了

  1. 只要拿到一个对象的指针即可,这个指针指向唯一的对象
class Person{
private:Person(){};
public:   //这个指针容易外界访问static Person* person;  //唯一(静态)的对象指针
};
Person* Person::person = new Person;   //静态变量实现(类内不管权限都能调用构造函数)
void test(){Person* c1 = Person::person;  //c1 == c2,它们指向相同Person* c2 = Person::person;
}

但是会出现一个问题:

c1 = NULL; //或者
Person::person = NULL;

那么这个类就访问不到了,因为权限太高,可以使用get、set方法。

  1. 将唯一的指针私有化,提供只读方法(不提供set方法)
class Person{
public:static Person* getInstance(){   //静态成员函数get方法(只能类去访问)return person;}
private:Person(){};
private:   //改为私有static Person* person;  //唯一(静态)的对象指针
};
Person* Person::person = new Person;   //静态变量实现
void test(){Person* p1 = Person::getInstance();Person* p2 = Person::getInstance();
}

但会出现以下问题:

Person* p3 = new Person(*p1); //拷贝构造,p3 != P1产生了新的对象
  1. 将拷贝构造函数私有化
class Person{
public:static Person* getInstance(){   //静态成员函数get方法(只能类去访问)return person;}
private:Person(){};  //默认构造函数私有化Person(const Person&){}  //拷贝构造函数私有化
private:   //改为私有static Person* person;  //唯一(静态)的对象指针
};
Person* Person::person = new Person;   //静态变量实现
void test(){Person* p1 = Person::getInstance();  //p1 == p2Person* p2 = Person::getInstance();
}

总结

单例模式是一种常见的设计模式,我们需要掌握它,熟练了可以直接看最后一步的代码。一个补充,单例对象在main函数调用之前生成了(静态变量在编译阶段就分配了内存)

http://www.yayakq.cn/news/600246/

相关文章:

  • 如何建设公司网站 需要注意什么腾讯云如何建设网站
  • 国外建设网站首页微网站开发流程图
  • 网站建设需要什么条件网络销售怎么做才能有业务
  • 网站后台管理系统素材手机在线网页制作
  • 贸易公司网站建设要多少钱沧浪手机网站建设方案
  • 网站 固定ip如何建电子商务网站
  • 怎么做卖辅助网站网络营销推广的渠道是什么
  • 东莞网站优化专家怎么查一个网站的外链
  • 网站主机和空间浙江网站搭建
  • 让人做网站需要准备什么软件小学学校网站
  • 东莞市建设监督网站网上注册公司的章程怎么下载出来
  • 网站平台建设目标网站关键词可以修改吗
  • 四川细胞库网站建设WordPress 发表文章api
  • 什么样的网站好优化制作公司网站
  • 江西汽车网站建设建设工程 质量 协会网站
  • 梧州建设网站5东莞网站建设
  • 同ip网站61源码网
  • app网站建设手机APP软件开发下载织梦做网站软件
  • 廊坊营销型网站建设saas系统是什么意思
  • 电子商务网站建设哪本教材比较适合中等专业学校用企业网站建设联系电话
  • 广东省网站免备案表新闻门户网站psd模板
  • 织梦软件开发网站模板下载电子商务技术
  • 网站体验方案wordpress wp_query paged
  • 企业网站html源代码网页不能下载的wordpress
  • 专门做美食的视频网站有哪些网站建设的趋势
  • 青岛建站公司推荐权威的营销单页网站
  • 中国网站免费服务器叫别人做网站安全吗
  • 网站关键词添加后的后果地税局内网网站建设
  • 网页视频怎么下载下来seo快速排名培训
  • 网站设计的几大标准中国建设银行的网站首页