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

网站推广每天必做的流程网络营销的模式有哪些

网站推广每天必做的流程,网络营销的模式有哪些,新手做网站需要什么,百度推广的广告真实可信吗多继承(Multiple Inheritance) 是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。…

多继承(Multiple Inheritance)

是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。

注意: 多继承时很容易产生命名冲突,即使我们很小心地将所有类中的成员变量和成员函数都命名为不同的名字,命名冲突依然有可能发生,比如典型的是菱形继承。

A
B
C
D

基类 A 派生出类 B 和类 C,子类 D 继承自类 B 和类 C。
这个时候类 A 中的成员变量和成员函数继承到类 D 中变成了两份,一份来自 A–>B–>D 这条路径,另一份来自 A–>C–>D 这条路径。

这样的问题在于,在D类中使用或者访问基类A中的成员函数、成员变量时会产生歧义。编译器不知道它是来着A–>B–>D,还是来自A–>C–>D这条路径。

//间接基类A
class A{
protected:int m_a;
};//直接基类B
class B: public A{
protected:int m_b;
};//直接基类C
class C: public A{
protected:int m_c;
};//派生类D
class D: public B, public C{
public:void seta(int a){ m_a = a; }  //命名冲突void setb(int b){ m_b = b; }  //正确void setc(int c){ m_c = c; }  //正确void setd(int d){ m_d = d; }  //正确
private:int m_d;
};int main(){D d;return 0;
}

这段代码实现了上图所示的菱形继承,D类中,成员函数代码试图直接访问成员变量 m_a,结果发生了错误,因为类 B 和类 C 中都有成员变量 m_a(从 A 类继承而来),编译器不知道选用哪一个,所以产生了歧义。

为了消除歧义,可以在访问的时候给他标明是来自哪一个类的,比如以下代码

void seta(int a){ C::m_a = a; }  //表明这个成员函数是通过 A-->C-->D 这条路径//或者这样
void seta(int a){ B::m_a = a; }  //表明这个成员函数是通过 A-->B-->D 这条路径

虚继承(Virtual Inheritance)

为了解决多继承时的命名冲突和冗余数据问题,C++ 提出了虚继承,使得在派生类中只保留一份间接基类的成员。
在继承方式前面加上 virtual 关键字就是虚继承,比如以下代码中展示的

//间接基类A
class A{
protected:int m_a;
};//直接基类B
class B: virtual public A{  //虚继承
protected:int m_b;
};//直接基类C
class C: virtual public A{  //虚继承
protected:int m_c;
};//派生类D
class D: public B, public C{
public:void seta(int a){ m_a = a; }  //正确void setb(int b){ m_b = b; }  //正确void setc(int c){ m_c = c; }  //正确void setd(int d){ m_d = d; }  //正确
private:int m_d;
};int main(){D d;return 0;
}

这段代码使用虚继承重新实现了上图所示的菱形继承,这样在派生类 D 中就只保留了一份成员变量 m_a,直接访问就不会再有歧义了。

虚继承的目的是让某个类做出声明,承诺愿意共享它的基类。其中,这个被共享的基类就称为虚基类(Virtual Base Class),本例中的 A 就是一个虚基类。在这种机制下,不论虚基类在继承体系中出现了多少次,在派生类中都只包含一份虚基类的成员。

虚继承
虚继承
A
B
C
D

必须在虚派生的真实需求出现前就已经完成虚派生的操作
虚派生只影响从指定了虚基类的派生类中进一步派生出来的类,它不会影响派生类本身
理由: 在上图中,当定义 D 类时才出现了对虚派生的需求,但是如果 B 类和 C 类不是从 A 类虚派生得到的,那么 D 类还是会保留 A 类的两份成员。

建议:能用单一继承解决的问题就不要使用多继承

http://www.hengruixuexiao.com/news/53320.html

相关文章:

  • 网站建设设计公司网站在线推广
  • 建设网站要先备案才能操作呢seo营销优化
  • 网站一般做几页竞价排名营销
  • 成都网站制作电话自助建站官网
  • 汕头建站方案好的营销网站
  • 中国建设银行网站用户名是什么优化合作平台
  • 网站建设怎么骗人贵州seo和网络推广
  • 秦皇岛最新通知网站seo推广排名
  • 如何做好网站seo自媒体培训学校
  • 物业管理网站开发背景如何在各种网站投放广告
  • 合肥珍岛公司做网站推广怎么样河北网站建设公司排名
  • 免费网站建设哪家好淘宝推广
  • 规划网站的总结河北百度推广电话
  • 网址源码在线查看网站seo规划
  • 城市房产网优化推广方案
  • 怎样制作印章码迷seo
  • 帝国cms 门户网站seo的基本步骤是什么
  • 清远 网站建设营销百度app下载手机版
  • 内网做网站外网访问站长工具5g
  • wordpress添加网站图标腾讯企点qq
  • 有没有做家具特卖的网站网络运营seo是什么
  • 固始城乡建设局的网站怎么打不开了超级seo外链工具
  • 太原网站排名以客为尊百度投诉中心24小时电话
  • 中国建行个人登录入口郑州seo优化
  • 谷歌云做网站服务器北京seo网站设计
  • 十大电商代运营服务商优化seo设置
  • 重庆免费网站建站模板爱站数据官网
  • web开发就是做网站吗seo关键词排名点击工具
  • 网站建设 镇江百度免费网站制作
  • 骏驰网站建设企业网站制作公司