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

C++多重继承

C++多重继承

一个类可以从多个类继承,只需在类的基类列表中(即冒号后)指定更多的基类,用逗号分隔即可。例如,如果程序有一个名为Output的特定类要在屏幕上打印,我们希望派生类Rectangle(长方形)和Triangle(三角形),除了继承基类Polygon(多边形)的成员外,还继承基类Output(输出),我们可以这样写:
class Rectangle: public Polygon, public Output;
class Triangle: public Polygon, public Output;

实例代码

源代码,仔细看注释内容:
D:\YcjWork\CppTour>vim c2005.cpp

#include <iostream>using namespace std;
/*** 类的多重继承
*/
class Polygon{ //定义一个基类Polygonprotected: //定义保护权限的成员,以便派生类继承int width, height;public:void set_value(int w, int h){width = w;height = h;}
};class Output{ //定义一个基类Outputpublic:static void print(int);
};void Output::print(int i){cout << i ;
}class Rectangle: public Polygon, public Output{ //从两个类中继承,定义派生类Rectanglepublic:int area(){return width*height;}
};class Triangle: public Polygon, public Output{ //从两个类中继承,定义派生类Trianglepublic:int area(){return width*height/2;}
};int main(){Rectangle rect;Triangle trgl;rect.set_value(4,5); //调用基类Polygon的set_value()方法trgl.set_value(4,5); //调用基类Polygon的set_value()方法rect.print(1); //调用基类Output的print()方法cout <<  ": " << rect.area() << endl; //调用派生类的方法area()trgl.print(2); //调用基类Output的print()方法cout <<  ": "<< trgl.area() << endl; //调用派生类的方法area()return 0;
}

编译运行

D:\YcjWork\CppTour>gpp c2005D:\YcjWork\CppTour>g++ c2005.cpp -o c2005.exeD:\YcjWork\CppTour>c2005
1: 20
2: 10D:\YcjWork\CppTour>

运行截屏
C++多重继承

(全文完)


http://www.mrgr.cn/news/41627.html

相关文章:

  • 酒店业CRM和酒店数据管理大数据—未来之窗行业应用跨平台架构
  • Allegro从.brd文件中导出器件封装
  • Python库pandas之二
  • MySQL 事务
  • 某度假村定岗定编项目成功案例纪实
  • 付费计量系统通用功能(10)
  • Webpack 特性:自定义 Loader 和 Plugin
  • 【C++二分查找 前缀和】1712. 将数组分成三个子数组的方案数|2078
  • 付费计量系统通用功能(9)
  • ERC 是什么?
  • 什么是虚拟化?| 裸机 vs 虚拟机 vs 容器
  • 免费录屏软件工具:助力高效屏幕录制
  • 数字控制系统
  • 媲美GPT-4o mini的小模型,Meta Llama 3.2模型全面解读!
  • `address-profile-spec-alias-ref` 元素
  • Golang | Leetcode Golang题解之第452题用最少数量的箭引爆气球
  • Python练习1
  • 在Ubuntu 16.04上使用LAMP安装WordPress
  • 死锁的成因与解决方案
  • 大豆虫害检测数据集 1800张 大豆虫害 带标注 voc yolo 12类