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

怎么在本机做网站小程序平台如何招商入驻

怎么在本机做网站,小程序平台如何招商入驻,哈尔滨建筑网,国内市场调研公司原文地址#xff1a;http://blog.csdn.net/lazy_tiger/article/details/2224899 一个类不能被继承#xff0c;也就是说它的子类不能构造父类#xff0c;这样子类就没有办法实例化整个子类从而实现子类无法继承父类。我们可以将一个类的构造函数声明为私有#xff0c;使得这…原文地址http://blog.csdn.net/lazy_tiger/article/details/2224899   一个类不能被继承也就是说它的子类不能构造父类这样子类就没有办法实例化整个子类从而实现子类无法继承父类。我们可以将一个类的构造函数声明为私有使得这个类的构造函数对子类不可见那么这个类也就不能继承了。但是这引出一个问题客户程序岂不是也无法实例化这个类了OK让我们参考一下Singleton模式用一个static函数来帮助创建这个类的实例问题就解决了   1 class CParent2 {3 private:4 CParent(int v){m_v v;}5 ~CParent(){}6 int m_v;7 static CParent * m_instance;8 public:9 void fun(){cout The value is: m_v endl;} 10 static CParent * getInstance(int v); 11 }; 12 CParent * CParent::m_instance NULL; 13 CParent * CParent::getInstance(int v) 14 { 15 m_instance new CParent(v); 16 return m_instance; 17 }   这是一个有效的方法但是static函数创建出来的实例必然是static的。而且这个类不能像普通的类那样构建对象比如   1 CParent c; // impossible 换个思路考虑一下友元不也是不能被继承的么我们可以把类的构造函数定义为private的同时定义友元函数来帮助构造类的实例。 class CParent { private: CParent(int v){m_v v;} ~CParent(); int m_v; public: void fun(){cout The value is: m_v endl;} friend CParent * getInstance(int v); }; CParent * getInstance(int v) { CParent * pinstance new CParent(v); return pinstance; } 这个类也是不能被继承的但是出现的问题和前面一样我们还是不能像对普通类那样对待这个类。 现在设想一下有一个CParent类我们不希望他能够被继承。在友元不能被继承的思路指引下我们要考虑让CParent的友元属性不能被继承。假设有一个辅助类CNoHeritanceCParent是CNoHeritance类的友元。还要假设一个CChild类它试图去继承CParent类如果它有这个能耐的话。 先把CNoHeritance类的构造函数定义成private然后将CParent声明为CNoHeritance的友元类。同时CParent继承了CNoHeritance类。到目前为止CNoHeritance除了CParent类以外谁也无法对它进行访问和实例化。CChild因为无法继承CParent的友元特性所以CChild无法对CNoHeritance直接进行实例化但是可以通过CParent。 到目前为止CParent还是可以被继承的。这是一个trick.让我们整理一下思路下面的图说明了CNoHeritance, CParent和CChild三个类之间的关系。   如果我们让CParent类虚继承CNoHeritance类根据虚继承的特性虚基类的构造函数由最终的子类负责构造。因此CChild如果要想继承CParent它必须能够构造CNoHeritance这是不可能的因此我们的CParent也就终于成为了一个无法继承的类。   1 class CNoHeritance2 {3 private:4 CNoHeritance(){}5 ~CNoHeritance(){}6 friend class CParent;7 };8 class CParent : virtual public CNoHeritance9 { 10 public: 11 CParent(int v){m_v v;} 12 ~CParent(){}; 13 private: 14 int m_v; 15 public: 16 void fun(){cout The value is: m_v endl;} 17 }; 18 class CChild : public CParent 19 { 20 public: 21 CChild():CParent(10){} 22 ~CChild(){} 23 }; 需要注意的是我们这里引入的CNoHeritance类对整个程序而言只引入了Private的构造函数和析构函数所以不会因为可能的菱形继承带来二义性.          转载于:https://www.cnblogs.com/theCambrian/p/3501806.html
http://www.zqtcl.cn/news/560223/

相关文章:

  • 东莞微信网站开发免费html模板素材网站
  • 海淀专业企业网站建设青岛平面设计公司
  • 北京正规网站建设比较wordpress cookies因预料之外的输出被阻止
  • 自助微信网站设计什么叫一级域名二级域名
  • 上海 顶尖 网站设计wordpress多站点不同主题
  • asp c 网站开发wordpress 动静分离
  • 服装网站建设规定wordpress禁止自动升级
  • 如何在网站上做社交的链接毕设给学校做网站
  • 网页设计与网站建设指标点您身边的网站建设顾问
  • 个人网站的制作广州网站优化招聘
  • 做网站产生的流量费怎么算软件开发前景和收入
  • 网站空间 .de单页型网站
  • 网站建设com品牌建设的作用
  • 优质作文网站柳州做网站去哪家公司好
  • 呼和浩特网站建设价格网站建设服务器
  • 做的比较好的电商网站西安有那些做网站的公司好
  • 哪个网站可以做英语语法题智慧云建筑信息平台
  • 网站怎么做百度才会收录金乡县网站开发
  • 深圳移动网站建站网站如何做播放线路
  • 深圳网站建设q.479185700惠哪个网站可以免费设计房子
  • 迁西网站开发网站建设技术网站建
  • 网站建设与管理课程报告能够做外贸的网站有哪些
  • 浅析社区网站的建设如何建立企业网站
  • 网站建设尺寸像素是多少广州商城型网站建设
  • 重庆自助建站模板简述网络营销的特点
  • 企业网站托管一个月多少钱网页设计规范2018
  • 网站建设费用摊销会计分录合肥网站建设哪里好
  • 郑州市建设工程造价信息网站关于工程项目建设的网站
  • 网站做淘宝客收入咋样景区门户网站建设方案
  • 遵义做网站推广西安都有哪些公司