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

如何做网站教程简单网站建设费用支出方案

如何做网站教程简单,网站建设费用支出方案,wordpress图片分享,手机网站建设公司哪家好文章目录 设计一个类不能被拷贝请设计一个类#xff0c;只能在堆上创建对象设计一个类只能在栈上去创建对象设计一个类不能被继承设计一个类#xff0c;只能创建一个对象(单例模式)饿汉模式懒汉模式 单例模式总结饿汉模式懒汉模式 设计一个类不能被拷贝 拷贝一个类对象可以有… 文章目录 设计一个类不能被拷贝请设计一个类只能在堆上创建对象设计一个类只能在栈上去创建对象设计一个类不能被继承设计一个类只能创建一个对象(单例模式)饿汉模式懒汉模式 单例模式总结饿汉模式懒汉模式 设计一个类不能被拷贝 拷贝一个类对象可以有两种方式,分别是拷贝构造和赋值运算符重载函数,因此要想一个类不能被拷贝只需在这两个函数上做文章就可以了。 1.只声明不定义因为定义也没啥意义反正也不会调用该函数且设为私有函数 为什么要设为私有函数呢 如果只声明为public的可能用户会自己在类外进行定义实现那么这个类就变得可以被拷贝了。 private:A(const A a){}A operator(const A a){}2.把这两个函数给禁掉C11 A(const A a) delete; A operator(const A a) delete;C11中通过关键字delete来禁用函数如果在一个函数后面加上delete就表示删除该默认成员函数 请设计一个类只能在堆上创建对象 提供一个静态成员函数该函数完成对象在堆上的创建把构造函数设为私有并把该类的拷贝构造函数和赋值运算符重载函数设成私有或者禁掉防止别人调用在栈上生成对象。 class HeapOnly { public:static HeapOnly* CreatObject(){return new HeapOnly();}private:HeapOnly(){}HeapOnly(const HeapOnly hp) delete;HeapOnly operator(const HeapOnly hp) delete;};这里为什么要把CreatObject设为static呢 因为我们的返回值是new HeapOnly()创建这个对象而如果不加static的话就需要先有HeapOnly()这个对象才能去调用这个函数而加了static修饰这个函数之后这个函数就变成了属于属于这个类的了而不是这个对象的了从而可以通过类去调用这个函数了 设计一个类只能在栈上去创建对象 通过静态成员函数去调用构造函数去创建对象并把new和delete关键字给禁掉 class StackOnly { public:static StackOnly GetInstance(){return StackOnly();}void* operator new(size_t size) delete;void operator delete(void* p) delete;private:StackOnly():_a(0){}int _a; };设计一个类不能被继承 方法一把基类的构造函数私有化 #include iostreamusing namespace std;class NonInherit { public:static NonInherit GetInstance(){return NonInherit();}private:NonInherit(){} };class A : public NonInherit { private:int _a; };方法二使用C11关键字final进行修饰 #include iostreamusing namespace std;class NonInherit final { };class A : public NonInherit { }; 设计一个类只能创建一个对象(单例模式) **单例模式一个类只能创建一个对象即单例模式该模式可以保证系统中只有一个实例并提供一个访问他的全局访问点该实例被所有程序模块共享。**比如在某个服务器程序中该服务器的配置信息存放在一个文件中这些配置数据由一个单例对象统一读取然后服务进程中的其他对象再通过这个单例对象获取这些配置信息这种方式简化了在复杂环境下的配置管理。 饿汉模式 #include iostreamusing namespace std;class Singleton { public: static Singleton GetInstance(){return _instance;}private:Singleton(){cout Singleton() endl;}Singleton(const Singleton _instance) delete;Singleton operator(const Singleton instance) delete;static Singleton _instance; };Singleton Singleton::_instance; int main() {/* Singleton a;Singleton b;*/cout Singleton::GetInstance() endl;cout Singleton::GetInstance() endl;return 0; }类中的静态成员变量_instance是就是这个类对象它是属于这个类的且在函数体外进行了定义所以在进入main函数之前该成员变量就被创建了。且在进入main函数之后如果想再创建对象就必须调用类中的静态成员函数而该函数返回的对象就是我们进入main函数之前创建的那个静态成员变量_instance所以保证了每一次的得到的对象都是同一个。因为构造函数被私有在后续创建对象时我们通过GetInstance()来创建对象时不会调用构造函数而是直接返回成员变量_instance Singleton() {cout Singleton() endl; }在进入main函数之前这句话就打印了进入main函数之后创建对象时因为不会在调用搞糟函数所以这句话不会再被打印 饿汉模式缺点如果类之间有依赖关系或者占用空间过大就会导致启动速度减慢需要花较长的时间才能进入main函数 懒汉模式 为什么叫懒汉模式 因为该对象会在进入main函数之后当你手动去创建时才会创建而且在第一次之后创建的对象都与第一个是同一个 这里通过一个静态成员对象指针变量来控制创建的是同一个先给这个对象指针赋值为nullptr当它为nullptr时才给你创建对象并把所创建对象的地址给静态成员变量指针当不为nullptr时你调用成员函数GetInstance()得到的是这个静态成员对象指针的解引用也就是第一一次创建的对象的地址 #include iostreamusing namespace std;class Singleton { public:static Singleton GetInstance(){if (_instance nullptr){_instance new Singleton;return *_instance;}return *_instance;}Singleton(const Singleton sl) delete;Singleton operator(const Singleton sl) delete;private:Singleton(){}static Singleton* _instance;//单例对象指针 };Singleton* Singleton::_instance nullptr;int main() {cout Singleton::GetInstance() endl;cout Singleton::GetInstance() endl;//错误 C2280 “Singleton::Singleton(const Singleton)”: 尝试引用已删除的函数//Singleton s Singleton::GetInstance();return 0; }单例模式总结 饿汉模式 不管你将来是不是用这个实例对象只要程序启动这个对象就被实例化出来且全局始终只有这一个实例化对象。 优点简单 缺点可能会导致进程启动变慢且如果有多个单例类对象实例启动顺序不确定。如果这个单例对象在多线程高并发情况下频繁使用性能要求较高那么显然使用饿汉模式来避免资源竞争提高响应速度更好。 懒汉模式 如果单例对象构造十分耗时或者占用资源比如加载组件初始化网络链接读取文件等且有可能这个对象在该程序运行时并不会被用到那么在程序启动前就进行初始化就会导致程序启动非常缓慢所以这种情况下选用懒汉模式延时加载更好。
http://www.hkea.cn/news/14508857/

相关文章:

  • 织梦源码网站模板网址导航源码
  • 潍坊做网站优化网业无法打开怎么办
  • 做网站订金为什么需要交那么多那个网站做宝贝主图好
  • 网站服务器怎么配置北京网站制作公司兴田德润可以不
  • 中企动力网站模板怎样成立网站
  • 网站开发 只要网站开发合同范本 doc
  • 想学网站建设网页制作教程软件
  • 口碑好网站建设在哪里市政浙江建设培训中心网站
  • 优秀网站建设官网网站经营
  • 网站怎么做结算做旅游网站的目的是什么
  • 衡水网站制作公司哪家专业发布网页
  • 什么都不会怎么做网站51制作工厂网站
  • 山东外贸公司排名wordpress google seo
  • 网络营销 企业网站北京正规网站建设调整
  • 在哪里找做网站的专业的vi设计公司
  • 建设网站说只给前端源码是什么意思蝶恋直播免费视频观看
  • c2c商城网站建设费用wordpress在评论框中加文字
  • 婺源网站建设红河县网站建设
  • 网站建设一定要公司吗网页小游戏flash不能正常运行
  • 网站基本信息设置深圳金融网站建设
  • 网站标签的作用关于色彩搭配的网站
  • 免费网站是app注册拉新平台
  • 网站标题和关键词一样百度指数在线查询前100
  • 深圳住房和建设局网站 招标wordpress 上线
  • 中天建设集团山西分公司网站河南省建设厅网站 吴浩
  • 我贷款网站如何做新乡网站
  • 东莞网站上排名科技公司名字大全参考
  • 网站小图标wordpress下单邮件通知
  • 网站支付页面怎么做小男孩与大人做的网站
  • 自己可以做一个网站吗网页版淘宝网登录入口