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

国外公共空间设计网站注册网站做推广

国外公共空间设计网站,注册网站做推广,惠州关键词排名优化,网站开发需求分析模板目录 1.单例模式 1.懒汉模式 2.饿汉模式 2.设计一个不能被继承的类 3.设计一个不能被继承但是可以在外部环境创建该类对象的类 4.设计一个可以被继承但不能在外部环境创建该类的对象的类 5.限制派生类对象不能拷贝也不能赋值 1.单例模式 设计一个不能在外部环境创建该类…目录 1.单例模式 1.懒汉模式 2.饿汉模式 2.设计一个不能被继承的类 3.设计一个不能被继承但是可以在外部环境创建该类对象的类 4.设计一个可以被继承但不能在外部环境创建该类的对象的类 5.限制派生类对象不能拷贝也不能赋值 1.单例模式 设计一个不能在外部环境创建该类的对象的一个类,只能创建一个就是单例模式,这里其实是写了一个饿汉模式 class Singleton {int value; private:Singleton(int x 0) :value(x) {}Singleton(const Singleton) delete;//删除的函数放共有私有都行Singleton operator(const Singleton) delete;~Singleton() { cout ~~~~ endl; };//因为唯一的对象s是该类域中的所有可以调共有私有以及保护的方法 public:static Singleton getInstance(){static Singleton s(10);//构建static的对象因为它被类的所有成员函数和子类共有return s;} }; void main() {Singleton s2 Singleton::getInstance();//不用引用就要调拷贝构造函数如果只允许创建一个对象则使用引用接收// s2.~Singleton();//不可以调用因为s2的作用域是在main函数里面 } 1.懒汉模式 懒汉模式很“懒”只有用到了才实例化对象并返回调用了对外的接口才会实例化对象。 class singleClass { public:static singleClass* getinstance()//对外接口的对象创建方法{if (instance nullptr){i_mutex.lock();if (instance nullptr)//判断第二次是因为确保不会因为加锁期间多个进程进入{instance new singleClass();}i_mutex.unlock();}return instance;} private:static singleClass *instance;static mutex i_mutex;singleClass() {};//构造函数 }; void main() {singleClass* p singleClass::getinstance();} 2.饿汉模式 不管调不调用对外接口都已经实例化对象了。 class singleClass { public:static singleClass* getinstance(){return instance;} private:static singleClass* instance;singleClass() {} }; singleClass* singleClass::instance new singleClass();//类外初始化void main() {singleClass* p1 singleClass::getinstance();singleClass* p2 singleClass::getinstance(); } 2.设计一个不能被继承的类 思路当基类的构造函数为私有时该类则不能被继承因为无论是何种继承子类只能访问父类的共有和保护成员当子类的构造函数被调用之前要先构造基类的构造函数但这时候无法访问基类的构造函数所以该基类不能被继承。 class non_herit { private:non_herit() {}//只能是保护才有结果 public:non_herit(const non_herit) {}~non_herit() {} }; class Base :public non_herit { public:Base(const Base base) :non_herit(base) {} };void main() {Base base1;//errorBase base2(base1);//error } 3.设计一个不能被继承但是可以在外部环境创建该类对象的类 final:代表用该关键词修饰的类是不能派生其他类的但是向上去继承没有问题 仍然可以在外部环境中创建该类的对象 class non_herit final {int value; public:non_herit(int x 0) :value(x) {}non_herit(const non_herit) default;//default是缺省的意思告诉编译器以默认方式给拷贝构造non_herit operator (const non_herit) default;~non_herit() {} }; //class Base :public non_herit//error //{}; class Base {};void main() {non_herit h1(0);Base base; } 4.设计一个可以被继承但不能在外部环境创建该类的对象的类 思路将基类的构造函数、拷贝构造函数和赋值运算符重载函数都声明为protcted,因为子类无论是何种继承都可以访问父类的共有和保护但是外界不能访问保护成员所以外界不能构建基类的对象单数该基类可以被继承子类可以在外部创建自己的对象构造函数是共有 子类也是可以进行赋值运算符重载的因为子类提供的缺省的赋值运算符之中是可以调基类的赋值运算符重载的因为基类的赋值运算符是保护属性可以在子类中被访问 拷贝构造也可以原因同上 class Object { protected:Object() {}Object(const Object obj){}Object operator(const Object obj) {return *this;} public:~Object() {}}; class Base :public Object { public:Base() {} };int main() {// Object obj;//errorBase ba;//right } 5.限制派生类对象不能拷贝也不能赋值 思路设计一个不能被拷贝和赋值的类也就是把基类的拷贝和赋值删掉如果有子类继承自这个基类那么他也不能拷贝和赋值但是前提是子类不能重写拷贝和赋值如果重写那么基类这个限制就没有了 原本编译器为子类提供的缺省拷贝和赋值是必须要调基类的拷贝和赋值的但是基类已经删了那么基于这样的规则子类就不能拷贝和赋值了。 class noncopyable { public:noncopyable() default;~noncopyable() default; protected:noncopyable(const noncopyable) delete;noncopyable operator(const noncopyable) delete; };class Point :public noncopyable {}; class Circle :public noncopyable {};void main() {Point p1();Point p2();// p1 p2;//error//Point p3(p1);//error }
http://www.dnsts.com.cn/news/26200.html

相关文章:

  • 潍坊网站制作保定公司电话网页模板免费资源
  • 晚上奖励自己的网站推荐wordpress app中文版下载
  • 哪里可以建网站天津塘沽爆炸
  • 易网拓营销型网站西峡网站开发
  • 快速学制作网站珠海做网站哪里公司好
  • 网站开发使用的语言类网站开发的课程
  • 原创作文网站怎样编辑网站标题
  • wordpress里验证谷歌站长电子商务网站平台建设策划
  • 教学网站在线自测功能怎么做北京做手机网站设计
  • 专业商城网站搭建价格怎么做页码
  • 中国建站网c2c模式的特点有哪些
  • 长沙网站seo推广推广方案设计
  • 服务型网站的营销特点中国建设集团有限责任公司
  • 网站对比分析中铁局哪个局实力最大
  • 网站开发 印花税自己搞个网站需要多少钱
  • 网站服务器怎么打开ps工具设计网站
  • 济宁做网站大约多少钱上海建材网站
  • asp做网站的优势是什么广元市建设银行网站
  • 中山网站建设文化服务做母婴的网站有哪些
  • 闽侯县住房和城乡建设局网站wordpress调用分类目录文章
  • discuz 分类网站网站建设捌金手指下拉二五
  • 搜索引擎网站推广法怎么做WordPress怎么改主题页脚
  • 临沂网站建设对实体企业的重要性如何搭建门户网站
  • 好吃易做的家常菜网站网站开发总结与收获
  • 经营网站需要什么资质上传空间网站
  • 网站开发公司属于什么行业大丰做网站
  • shopify网站建设广州互联网大厂公司有哪些
  • 做网站代理网站怎么谈网页游戏大厅免费
  • 网站原型抖音广告投放 网页制作教程
  • 美容院网站制作一级建设造师网站