/*
* Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 作    者:王静
* 完成日期:2013  年 6  月  2  日
* 版 本 号:v1.0
* 输入描述:
* 问题描述:设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder,分别表示正方体、球
体及圆柱体。在main()函数中,定义基类的指针p(CSolid *p;),利用p指针,输出正方体、球体及圆柱体对象的表面积及体积
* 程序输出:
* 问题分析:
* 算法设计:略
*/
#include <iostream>
#define pi 3.14
using namespace std;
class CSolid
{
public:
virtual double area()const =0;
virtual double volume() const=0;
void display(){cout<<"表面积为:"<<area()<<endl;
cout<<"体积为:"<<volume()<<endl;}
};
class CCube:public CSolid
{
public:
CCube(double s):side(s){}
double area()const
{
return side*side*6;
}
double volume()const
{
return side*side*side;
}
double side;
};
class CBall:public CSolid
{
public:
CBall(double r0):r(r0){}
double area()const
{
return 4*pi*r*r;
}
double volume()const
{
return 4*pi*r*r*r/3;
}
double r;
};
class CCylinder:public CSolid
{
public:
CCylinder(double h,double r0):high(h),r(r0){}
double area()const
{
return 2*pi*r*high+2*pi*r*r;
}
double volume()const
{
return pi*r*r*high;
}
double high;
double r;
};
int main()
{
CSolid *p;
CCube cude(3.4);
CBall ball(3.2);
CCylinder cy(4.0,2.3);
p=&cude;
p->display();
p=&ball;
p->display();
p=&cy;
p->display();
return 0;
}

运行结果:

总结:

在基类里有纯虚函数时,派生类中的同名称函数声明时要加const!!!

项目3抽象类与纯虚函数相关推荐

  1. C++中的抽象类及纯虚函数的实现与否

    1.含有纯虚函数的叫抽象类 2.抽象类(一般是基类)中的纯虚函数无论函数体实现与否,都没有关系,系统会自动忽略 3.继承自抽象类的子类,必须要实现父类的纯虚函数才可以实例化对象 4.抽象类不允许实例化 ...

  2. C++编程练习:多态实验——利用抽象类和纯虚函数,编程计算正方体、球体和圆柱体的表面积和体积。

    例.要求利用抽象类和纯虚函数,编程设计一个程序计算正方体.球体和圆柱体的表面积和体积,具体要求如下: 1.设计一个抽象类为公共基类 : 2.设计成员函数source_area( ),求表面积: 3.设 ...

  3. 【C++grammar】访问控制与抽象类与纯虚函数

    目录 一.访问控制 (可见性控制) 1.private.public.protected关键字 2.关键字示例 1.关键字对类数据成员访问的限制 3. 公有继承 4. 私有继承 5. 保护继承 6. ...

  4. 抽象类(纯虚函数、虚函数)和虚基类(虚继承)

    C++多态 C++的多态包括静态多态和动态多态,静态多态包括函数重载和泛型编程,动态多态包括虚函数.静态多态实在编译期间就能确定,动态多态实直在程序运行时才能确定. 抽象类 虚函数 在默认情况下对函数 ...

  5. 【C++】多态(早期绑定、后期绑定)、抽象类(纯虚函数)、虚析构函数

    我们都知道面向对象编程的三大特征是封装.继承.多态,今天我们就来说一下其中之一的多态. 概念: 多态: 多态字面意思就是多种形态,C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同 ...

  6. C++之纯虚函数和抽象类

    纯虚函数和抽象类 1.基本概念 2.案例 #include <iostream> using namespace std;////面向抽象类编程(面向一套预先定义好的接口编程)//解耦合 ...

  7. c++远征之多态篇——纯虚函数和抽象类、接口类

    以下内容源于慕课网的学习整理,如有侵权,请告知删除. 1.纯虚函数 没有函数体: =0: 即只有函数声明,而没有函数定义的虚函数,是纯虚函数. 2.抽象类 概念:含有纯虚函数的类,叫抽象类. 抽象类无 ...

  8. 【C++】C++类的学习(五)——纯虚函数与抽象类

    [fishing-pan:https://blog.csdn.net/u013921430转载请注明出处] 前言 在前面的博客中讲到了虚函数,今天讲述一种特别的虚函数--纯虚函数,以及与之相关的抽象类 ...

  9. C++ 虚函数,纯虚函数,抽象类整理

    抽象类,类中包含纯虚函数的为抽象类,其中抽象类的子类必须实现抽象类的纯虚函数方法. 抽象类无法实例化 虚函数,子类可以实现或者不实现该方法都可以 如果父类调用子类的基类指针时,有虚函数的则使用子类的实 ...

最新文章

  1. 独家 | 这15个最热门的GitHub库你不可错过!
  2. python下py2exe打包笔记
  3. C语言写的俄罗斯方块
  4. 测试MVC3时关于Model Builder语句的更改
  5. 巧用Graphviz和pvtrace等工具可视化C函数调用
  6. rsync命令使用方法
  7. 关于Java的十件事
  8. 手把手教你使用Numpy、Matplotlib、Scipy等5个Python库
  9. 靠谱测试人员需具备逻辑思考能力
  10. 点击菜单选项,右侧主体区新增子界面(Tab)的实现
  11. html清除两端浮动,HTML中如何实现浮动与清除浮动
  12. Mybatis ResultMap Collection 复合主键
  13. thinkphp5之配置tp5重写伪静态
  14. 计算机829大纲,829计算机基础考试大纲
  15. 计算机网络(谢希仁)第六版课件
  16. 十二位计算机的使用方法,Win10专业版12个使用技巧汇总
  17. 微信支付申请及简单使用
  18. “熊孩子”乱敲键盘攻破 Linux 桌面;苹果开源代码被发现包含兼容微信的代码;网传蚂蚁启用OKR替代KPI | EA周报...
  19. Rstudio与R的绑定和更新
  20. 大变局时代的搜索引擎走向何方?

热门文章

  1. mysql大翻页limt 1700,100慢优化方案
  2. php移动端可拖动可视化,可视化编辑uniapp项目DIY拖拽
  3. 考研英语 - word-list-29
  4. Flutter高仿微信-第26篇-新的朋友
  5. 穹顶之下——大数据下生活
  6. SSR服务端渲染(nuxt重构项目)
  7. 汇编语言 王爽第二版 总结
  8. vm时序数据库-导入数据
  9. 计算机网络原理 谢希仁(第8版)第三章习题答案
  10. 2019前端面试常问