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

网站运营小白可以做吗宁德市人社局官网

网站运营小白可以做吗,宁德市人社局官网,湘潭建设网站的公司,沈阳seo建站一、菱形继承的基本概念 菱形继承又称为钻石继承,由公共基类派生出多个中间子类,又由多个中间子类共同派生出汇聚子类。汇聚子类会得到,中间子类从公共基类继承下来的多份成员。 菱形继承的格式: A --------公共基类/ \…

一、菱形继承的基本概念

        菱形继承又称为钻石继承,由公共基类派生出多个中间子类,又由多个中间子类共同派生出汇聚子类。汇聚子类会得到,中间子类从公共基类继承下来的多份成员。

菱形继承的格式:

                 A       --------公共基类/    \B      C    ------- 中间子类\    /D       --------汇聚子类

示例:

 

#include <iostream>
using namespace std;//封装公共基类 家具 类
class Jiaju
{
private:string color;
public://无参构造Jiaju() {cout << "家具的无参构造函数" << endl;}//有参构造Jiaju(string n):color(n){cout << "家具的有参构造函数" << endl;}
};//中间子类
//封装 沙发的类
class Sofa:public Jiaju
{
private:string sitting;
public://无参构造Sofa() {cout << "沙发的无参构造" << endl;}//有参构造函数Sofa(string s,string c):Jiaju(c),sitting(s){cout << "沙发的有参构造" << endl;}void display(){cout << sitting << endl;}
};//中间子类
//封装 床 类
class Bed:public Jiaju
{
private:string sleep;public://无参Bed() {cout << "床的无参构造" << endl;}//有参Bed(string s,string c):Jiaju(c),sleep(s){cout << "床的有参构造" << endl;}void display(){cout << sleep << endl;}
};//汇聚子类
//封装 沙发床类  继承于沙发 和 床
class Sofa_Bed:public Bed,public Sofa
{
private:int w;
public://Sofa_Bed(){cout << "沙发床的无参构造" << endl;}//有参构造Sofa_Bed(string sit, string s, int w,string c):Bed(s,c),Sofa(sit,c),w(w){cout << "沙发床的有参构造" << endl;}
};int main()
{
//    Sofa_Bed s;Sofa_Bed s1("可坐","可躺",123,"pink");return 0;
}

菱形继承存在的问题:

        汇聚子类会得到,中间子类从公共基类继承下来的多份成员,造成空间浪费,没有必要,还会对公共基类的成员多次初始化,或释放。

二、虚继承

 虚继承的作用:

        可以让汇聚子类只保留一份 中间子类从公共基类继承下来的成员。       

 虚继承的格式:

        在中间子类的继承方式前 加上 virtual

class 类名 : virtual 继承方式 类名   //中间子类
{中间子类的拓展;
};

使用虚继承的注意事项: 

        中间子类虚继承公共基类后,汇聚子类的初始化列表,先调用中间子类的有参构造函数,中间子类再调用公共基类的有参构造函数。但是,虚继承之后,只保留一份中间子类从公共基类继承下来的有参构造函数,意味着不知道调用哪一个中间子类继承下来的公共基类的构造函数,这样就会默认调用公共基类的无参构造函数。

        如果汇聚子类想要对公共基类的数据成员初始化,需要显性调用公共基类的构造函数。

示例: 

#include <iostream>
using namespace std;//封装公共基类 家具 类
class Jiaju
{
private:string color;
public://无参构造Jiaju() {cout << "家具的无参构造函数" << endl;}//有参构造Jiaju(string n):color(n){cout << "家具的有参构造函数" << endl;}
};//中间子类
//封装 沙发的类
class Sofa:virtual public Jiaju  //中间子类虚继承公共基类
{
private:string sitting;
public://无参构造Sofa() {cout << "沙发的无参构造" << endl;}//有参构造函数Sofa(string s,string c):Jiaju(c),sitting(s){cout << "沙发的有参构造" << endl;}void display(){cout << sitting << endl;}
};//中间子类
//封装 床 类
class Bed:virtual public Jiaju  //中间子类虚继承公共基类
{
private:string sleep;public://无参Bed() {cout << "床的无参构造" << endl;}//有参Bed(string s,string c):Jiaju(c),sleep(s){cout << "床的有参构造" << endl;}void display(){cout << sleep << endl;}
};//汇聚子类
//封装 沙发床类  继承于沙发 和 床
class Sofa_Bed:public Bed,public Sofa
{
private:int w;
public://Sofa_Bed(){cout << "沙发床的无参构造" << endl;}//有参构造Sofa_Bed(string sit, string s, int w,string c):Jiaju(c),Bed(s,c),Sofa(sit,c),w(w) //需要在汇聚子类中显性调用公共基类的有参构造函数{cout << "沙发床的有参构造" << endl;}
};int main()
{
//    Sofa_Bed s;Sofa_Bed s1("可坐","可躺",123,"pink");return 0;
}

http://www.ritt.cn/news/21063.html

相关文章:

  • 简答网站建设流程有哪些桌面百度
  • 如何自己做网站推广淘宝客百度手机浏览器下载
  • wordpress限制登陆页纯手工seo公司
  • 杭州网站建设网站制作四川刚刚发布的最新新闻
  • 重庆建设工程信息网站网站seo入门基础教程
  • 建设网站的意义东莞网站推广营销网站设计
  • 上海建网站的公司优化设计六年级下册语文答案
  • 深圳网站制作公司 讯推广优化网站
  • 网站系统繁忙怎么办seo做得比较好的公司
  • 网站做非经营性广告需备案中国去中心化搜索引擎
  • 宁波建设监理协会网站seo点击器
  • 国内 免费 云服务器关键词优化意见
  • 合肥公司门户网站制作seo网站监测
  • 高新网站建设多少钱有别人的交易链接怎么交易
  • 如何做本地网站快速优化seo
  • 幼儿园网站模板怎么做全球网络营销公司排名
  • 厚街东莞网站建设天津最新消息今天
  • 上海网络公司有哪几家上海抖音seo公司
  • 著名网站设计百度快照投诉中心
  • htm5移动网站开发seo排名官网
  • 网站开发比较流行的框架aso优化什么意思
  • 桓台县旅游网站建设今天发生的重大新闻
  • 哪个网站可以接图纸做百度广告开户
  • 做网站的字体seoheuni
  • 设计网站都有什么作用是什么seo新站如何快速排名
  • 便宜的做网站百度一级代理商
  • 东莞市镇街建设项目监理招标网站凡科网建站系统源码
  • vi视觉识别系统阿里seo排名优化软件
  • 摄影工作室网站模板网络优化工程师主要负责什么工作
  • 做一些购物网站免费b站推广网站2023