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

乌兰察布市网站建设_网站建设公司_页面权重_seo优化

深圳精品网站建设,平面设计师常用的网站,推广网站设计推广方案,网站 编程语言1. 虚基类介绍 多继承时很容易产生命名冲突#xff0c;即使我们很小心地将所有类中的成员变量和成员函数都命名为不同的名字#xff0c;命名冲突依然有可能发生#xff0c;比如非常经典的菱形继承层次。如下图所示#xff1a; 类A派生出类B和类C#xff0c;类D继承自类B和…1. 虚基类介绍 多继承时很容易产生命名冲突即使我们很小心地将所有类中的成员变量和成员函数都命名为不同的名字命名冲突依然有可能发生比如非常经典的菱形继承层次。如下图所示 类A派生出类B和类C类D继承自类B和类C这个时候类A中的成员变量和成员函数继承到类D中变成了两份一份来自 A--B--D 这一路另一份来自 A--C--D 这一条路。 在一个派生类中保留间接基类的多份同名成员虽然可以在不同的成员变量中分别存放不同的数据但大多数情况下这是多余的因为保留多份成员变量不仅占用较多的存储空间还容易产生命名冲突而且很少有这样的需求。 为了解决这个问题C提供了虚基类使得在派生类中只保留间接基类的一份成员。 声明虚基类只需要在继承方式前面加上 virtual 关键字请看下面的例子 #include iostream using namespace std;class A { protected:int a; public:A(int a) : a(a) {} };class B : virtual public A { protected:int b; public:B(int a, int b) : A(a), b(b) {} };class C : virtual public A { protected:int c; public:C(int a, int c) : A(a), c(c) {} };class D : virtual public B, virtual public C { private:int d; public:D(int a, int b, int c, int d) : A(a), B(a, b), C(a, c), d(d) {}void display(); };void D::display() {cout a a endl;cout b b endl;cout c c endl;cout d d endl; }int main() {(new D(1, 2, 3, 4))-display();return 0; } 输出结果 本例中我们使用了虚基类在派生类D中只有一份成员变量 a 的拷贝所以在 display() 函数中可以直接访问 a而不用加类名和域解析符。 请注意派生类D的构造函数与以往的用法有所不同。以往在派生类的构造函数中只需负责对其直接基类初始化再由其直接基类负责对间接基类初始化。现在由于虚基类在派生类中只有一份成员变量所以对这份成员变量的初始化必须由派生类直接给出。如果不由最后的派生类直接对虚基类初始化而由虚基类的直接派生类如类B和类C对虚基类初始化就有可能由于在类B和类C的构造函数中对虚基类给出不同的初始化参数而产生矛盾。所以规定在最后的派生类中不仅要负责对其直接基类进行初始化还要负责对虚基类初始化。 有的读者会提出类D的构造函数通过初始化表调了虚基类的构造函数A而类B和类C的构造函数也通过初始化表调用了虚基类的构造函数A这样虚基类的构造函数岂非被调用了3次大家不必过虑C编译系统只执行最后的派生类对虚基类的构造函数的调用而忽略虚基类的其他派生类如类B和类C对虚基类的构造函数的调用这就保证了虚基类的数据成员不会被多次初始化。 最后请注意为了保证虚基类在派生类中只继承一次应当在该基类的所有直接派生类中声明为虚基类否则仍然会出现对基类的多次继承。
http://www.ihoyoo.com/news/29095.html

相关文章:

  • 想招代理去什么网站淘宝seo推广优化
  • 江门云建站模板记事本做网站的代码
  • jspajax网站开发典型实例平面设计做兼职网站
  • 东莞网站建设十大品牌网页设计制作课程表
  • 微网站样式做全国社保代理的网站
  • 织梦优美文章阅读网站源码新能源电动汽车
  • 网站建设中建站广告html单页面如何申请免费域名做网站
  • wordpress素材下载站天津制作网站首页
  • 科技英语翻译手机网站图片优化
  • 响应式旅游网站模版使馆网站建设
  • 网络营销基础 网站策划与网上营销tk域名注册网站
  • 东莞网站制作哪里找tp框架可以做网站吗
  • 文字游戏做的最好的网站衡阳网站设计
  • 深圳网站建设资讯用外服务器做网站
  • 网站建设 竞标公司要求食品厂招男女工5000
  • 网站关键词排名突然没了网站推广怎么做优化
  • 领优惠券的网站是怎么做的如何赋予网站建设以生命力
  • 公司网站制作流程微信网站开发有中院管辖呢
  • 涉县专业做网站wordpress get user
  • 天津做网站多少钱上海网站营销公司
  • 昆明做网站建设怎么样网站源码下载平台源码
  • 做网站需要了解什么软件口碑营销是什么
  • 案列网站wordpress取回密码收不到邮件
  • 资料代做网站郑州石凡平面设计有限公司
  • seo网站优化推广怎么样ckeditor导入wordpress
  • 郑州网站建设多少钱wordpress 微信咨询代码
  • 青岛网站建设王道下拉強网站你懂我意思正能量晚上不用下载直接进入
  • 西安企业网站设计哪家专业网站建设小组实训总结
  • 东莞网站优化推广方案深圳优秀网站建设
  • 大朗镇仿做网站微网站推广