文章目录


/*----------------------------------------------------------------*/
//基类
class Line {public:Line(float len);virtual float area() = 0;virtual float volume() = 0;
protected:float m_len;
};
Line::Line(float len) : m_len(len) { }//第一次派生 1.增加Rec函数 2.实现纯虚函数area
/*----------------------------------------------------------------*/
class Rec : public Line {public:Rec(float len, float width);float area();
protected:float m_width;
};
//构造函数
Rec::Rec(float len, float width) : Line(len), m_width(width)
{}
//成员函数
float Rec::area()
{return m_len * m_width;
}//第二次派生 1.增加Cuboid函数 2.实现area、volume方法
/*----------------------------------------------------------------*/
class Cuboid : public Rec {public:Cuboid(float len, float width, float height);float area();float volume();
protected:float m_height;
};
Cuboid::Cuboid(float len, float width, float height) : Rec(len, width), m_height(height)
{}
float Cuboid::area()
{return 2 * (m_len * m_width + m_len * m_height + m_width * m_height);
}
float Cuboid::volume()
{return m_len * m_width * m_height;
}/*----------------------------------------------------------------*/
//第三次派生类
class Cube : public Cuboid {public:Cube(float len);float area();float volume();
};
Cube::Cube(float len) : Cuboid(len, len, len)
{}
float Cube::area()
{return 6 * m_len * m_len;
}
float Cube::volume()
{return m_len * m_len * m_len;
}/*----------------------------------------------------------------*/
int main()
{//第二次派生类实例化对象Line* p = new Cuboid(10, 20, 30);cout << "The area of Cuboid is " << p->area() << endl;cout << "The volume of Cuboid is " << p->volume() << endl;//第三次派生类实例化对象p = new Cube(15);cout << "The area of Cube is " << p->area() << endl;cout << "The volume of Cube is " << p->volume() << endl;return 0;
}

【C++继承多态一】相关推荐

  1. Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态

    Hello,大家好~我是你们的Hachi君,一个来自某学院的资深java小白.最近利用暑假的时间,修得满腔java语言学习心得.今天小宇宙终于要爆发了,决定在知乎上来一场根本停不下来的Hachi君个人 ...

  2. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

  3. linux c 多态原理,看了所谓的面向对象中靠继承多态实现的所谓重用 哥笑了

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这种重用不过还是引用别的类的函数或其它成员元素 我老听有些不懂编程却爱喷的人说什么面向对象代码可重用性"强" C写的代码 完全不能重用 ...

  4. 深度探索C++ 对象模型(7)-Data member的布局(无继承、继承无多态、继承多态、多层继承)

    无继承 继承无多态 继承多态 虚表 : 用来存放基类的每一个虚函数,再加上首位的一个slots(支持RTTI). 每个class object导入一个vptr,提供执行期的链接,使得每一个class ...

  5. python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态

    六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...

  6. Winform打砖块游戏制作step by step第5节---重构代码,利用继承多态

    一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 二 本节内容---重构代码,利用继承多态 1. 主界面截图如下: 2.  ...

  7. Java继承多态经典案例分享

    今天动力节点java培训机构小编为大家分享Java继承多态经典案例,希望通过此文能够帮助到大家,下面就随小编一起看看Java继承多态经典案例. public class A { public Stri ...

  8. Python的继承多态

    Python的继承多态 文章目录 Python的继承多态 一.私有属性和私有方法 01. 应用场景及定义方式 02. 伪私有属性和私有方法 二.单例 01. 单例设计模式 单例设计模式的应用场景 02 ...

  9. CLR运行时细节 - 继承多态的实现

    关于多态不多解释了,在运行时决定和调用具体的实现,是面向对象的基础 设计模式的基础. 准备把继承多态和接口多态分开,因为从CLR实现的角度继承多态相比于接口多态要简单得多,也更容易理解,本篇只讨论继承 ...

  10. python-类继承多态

    python-类继承多态 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. class car:'车的重量与驾驶方法类'car ...

最新文章

  1. Java IO流 序列二:File类
  2. 巨鲸任务调度平台:spark flink任务调度
  3. 用计算机计算的手抄报内容,关于数学计算手抄报
  4. Hibernate入门之关系篇:多对一和一对多映射
  5. 程序员应该抛弃的10种思维定式
  6. react学习(8)----数组方法fliter简介
  7. php与web网页计算器,php+html实现网页计算器
  8. 斯坦福 CS228 概率图模型中文讲义 六、变量消除
  9. miui 8.5 android,小米MIUI8.5稳定版
  10. java 映射类的方法_java什么是映射
  11. C/C++框架、库、资源
  12. CRichEditDoc下保存文档出现\rtf1\ansi\ansicpg936\deff0的解决方法
  13. 18款最佳Bug跟踪管理系统
  14. Maven的安装、配置及使用入门
  15. 中国 Google 面试 7 轮,结果...
  16. 个人信贷评估模型研究
  17. 椭圆型变分问题理论及数值方法
  18. 移动端开发之Web App开发
  19. 【日常学习】U-net的改进
  20. 【SpringBoot】springboot日志配置

热门文章

  1. 详解动作捕捉在步态分析领域中的应用
  2. 计算机硬件配置信息主要指标,2015计算机三级考试《网络技术》基础知识:计算机硬件系统...
  3. 什么是外汇量化交易稳定盈利的核心?
  4. python三维数据可视化的多种方法
  5. JavaScript 合法的URL
  6. boost 框架及基础类库的编译(FCL and BCL on Boost C++)
  7. 基于CubeMX-STM32F302_uCOSII例程移植
  8. 对前端开发来说,学历真的重要吗?
  9. 桌面有u盘符计算机里没有了,U盘插入电脑不显示盘符怎么办 U盘修复处理方法...
  10. 小白敲代码工具推荐(非广告)