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

淄博安监局网站两体系建设站长工具友链检测

淄博安监局网站两体系建设,站长工具友链检测,重庆做木门网站公司,手机销售网站制作在本文中,您将学习C 编程中的不同继承模型:带有示例的多继承,多层和分层继承。 继承是面向对象编程语言的核心功能之一。它允许软件开发人员从现有的类派生一个新的类。派生类继承基类(现有类)的功能。C 编程中有多种…

        在本文中,您将学习C ++编程中的不同继承模型:带有示例的多继承,多层和分层继承。

继承是面向对象编程语言的核心功能之一。它允许软件开发人员从现有的类派生一个新的类。派生类继承基类(现有类)的功能。C ++编程中有多种继承模型。

C ++多层继承

        在C ++编程中,不仅可以从基类派生一个类,还可以从派生类派生一个类。这种继承形式称为多层继承。

class A
{ 
... .. ... 
};
class B: public A
{
... .. ...
};
class C: public B
{
... ... ...
};

这里,类B派生自基类A,类C派生自派生类B。

示例1:

#include <iostream>
using namespace std;class A
{public:void display(){cout<<"基类的内容。";}
};class B : public A
{};class C : public B
{};int main()
{C obj;obj.display();return 0;
}

输出结果:
基类的内容。

分析:

        在这个程序中,C类是从B类派生出来的(B类是从基类A派生出来的)。C类的obj对象在main()函数中定义。调用display()函数时,将执行类A中的display()。 这是因为在C类和B类中没有display()函数。编译器首先在类C中查找display()函数。由于该函数在该类中不存在,因此它将在类B中查找该函数(因为C是从B派生的)。这个display()函数在B类中也不存在,所以编译器在A类中寻找它(因为B是从A派生出来的)。如果C中存在display()函数,则编译器将覆盖类A的display()(因为成员函数覆盖)。

C ++多重继承

        在C ++编程中,一个类可以从多个父类派生。 例如:Bat类是从Mammal和WingedAnimal基类派生的。 这很有意义,因为蝙蝠既是哺乳动物(Mammal)又是有翅膀的动物(WingedAnimal)。

示例2:

#include <iostream>
using namespace std;class Mammal {public:Mammal(){cout << "哺乳动物可以直接出生。" << endl;}
};class WingedAnimal {public:WingedAnimal(){cout << "有翼的动物能拍动翅膀。" << endl;}
};class Bat: public Mammal, public WingedAnimal {};int main()
{Bat b1;return 0;
}

输出结果: 

哺乳动物可以直接出生。
有翼的动物能拍动翅膀。

多重继承中的歧义

        多重继承最明显的问题发生在函数重写期间。假设两个基类具有相同的函数,但在派生类中未重写该函数。如果尝试使用派生类的对象调用该函数,则编译器将显示错误。这是因为编译器不知道要调用哪个函数。例如,

class base1
{public:void someFunction( ){ .... ... .... }  
};
class base2
{void someFunction( ){ .... ... .... } 
};
class derived : public base1, public base2
{};int main()
{derived obj;obj.someFunction() // 错误!  
}

报错位置: 

这个问题可以通过使用范围解析函数来指定哪个函数属于base1或base2类来解决:

int main()
{obj.base1::someFunction( );  // 调用base1类的函数obj.base2::someFunction();   // 调用base2类的函数
}

C ++分层继承

        如果从基类继承多个类,则称为分层继承。在分层继承中,子类中共有的所有功能都包括在基类中。例如:物理,化学,生物学均来自科学课。

class base_class {... .. ...
}class first_derived_class: public base_class {... .. ...
}class second_derived_class: public base_class {... .. ...
}class third_derived_class: public base_class {... .. ...
}

http://www.yayakq.cn/news/522409/

相关文章:

  • 企业网站建设案例分析知名网站建设加工
  • 简约大方网站如何注册公司地址定位
  • 移动网站建设服务商网站服务器建设教程视频
  • 海城整站优化做词频云图的网站
  • 计算机网站建设文献综述全国工商企业查询
  • 网站配色与布局 教材做网站用虚拟主机还是服务器
  • 做网址导航网站如何速发布wordpress
  • 株洲企业网站建设品牌怎样制作公司网站
  • 企业网站的推广方法新闻类网站排版网站建设
  • 高端企业门户网站建设费用网站网站制作需要多少钱
  • wordpress 托管建站外包加工网怎么样
  • 网站在vps能访问 在本地访问不了嵌入式软件开发程序员
  • 陕西网站建设厦门网站制作什么网站可以做问卷
  • 可以访问违规网站的浏览器新浪军事 手机新浪网
  • 哈尔滨 网站开发最流行的网站开发语言
  • 陕西省西安市制作网站wordpress移动端悬浮导航代码
  • 想找工作去哪个网站wordpress文章展示
  • 莒县网站设计西安市建设工程信息网新平台
  • 陕西网站seo如何利用问答类网站做推广
  • 做简历网站 知乎网站首页流程图
  • 昆明建设局官方网站网站域名不变网站可以从做吗
  • 东莞桥头网站设计html静态页面怎么放在网站上
  • 广告传媒公司的网站应该怎么做潍坊住房和城乡建设厅网站电话
  • 河北省住房和城乡建设厅网站查询汉南网站建设
  • 电商物流建设网站过程网站网站制作400多少钱
  • 整套html企业网站模板重庆模板建站代理
  • 从事网站建金华兰溪网站建设
  • 做游戏门户网站要注意什么调查问卷网页html代码
  • 网站制作软件平台网站 移动化
  • 如何做一个网站平台百度怎么推广自己的店铺