项目3抽象类与纯虚函数
/*
* 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抽象类与纯虚函数相关推荐
- C++中的抽象类及纯虚函数的实现与否
1.含有纯虚函数的叫抽象类 2.抽象类(一般是基类)中的纯虚函数无论函数体实现与否,都没有关系,系统会自动忽略 3.继承自抽象类的子类,必须要实现父类的纯虚函数才可以实例化对象 4.抽象类不允许实例化 ...
- C++编程练习:多态实验——利用抽象类和纯虚函数,编程计算正方体、球体和圆柱体的表面积和体积。
例.要求利用抽象类和纯虚函数,编程设计一个程序计算正方体.球体和圆柱体的表面积和体积,具体要求如下: 1.设计一个抽象类为公共基类 : 2.设计成员函数source_area( ),求表面积: 3.设 ...
- 【C++grammar】访问控制与抽象类与纯虚函数
目录 一.访问控制 (可见性控制) 1.private.public.protected关键字 2.关键字示例 1.关键字对类数据成员访问的限制 3. 公有继承 4. 私有继承 5. 保护继承 6. ...
- 抽象类(纯虚函数、虚函数)和虚基类(虚继承)
C++多态 C++的多态包括静态多态和动态多态,静态多态包括函数重载和泛型编程,动态多态包括虚函数.静态多态实在编译期间就能确定,动态多态实直在程序运行时才能确定. 抽象类 虚函数 在默认情况下对函数 ...
- 【C++】多态(早期绑定、后期绑定)、抽象类(纯虚函数)、虚析构函数
我们都知道面向对象编程的三大特征是封装.继承.多态,今天我们就来说一下其中之一的多态. 概念: 多态: 多态字面意思就是多种形态,C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同 ...
- C++之纯虚函数和抽象类
纯虚函数和抽象类 1.基本概念 2.案例 #include <iostream> using namespace std;////面向抽象类编程(面向一套预先定义好的接口编程)//解耦合 ...
- c++远征之多态篇——纯虚函数和抽象类、接口类
以下内容源于慕课网的学习整理,如有侵权,请告知删除. 1.纯虚函数 没有函数体: =0: 即只有函数声明,而没有函数定义的虚函数,是纯虚函数. 2.抽象类 概念:含有纯虚函数的类,叫抽象类. 抽象类无 ...
- 【C++】C++类的学习(五)——纯虚函数与抽象类
[fishing-pan:https://blog.csdn.net/u013921430转载请注明出处] 前言 在前面的博客中讲到了虚函数,今天讲述一种特别的虚函数--纯虚函数,以及与之相关的抽象类 ...
- C++ 虚函数,纯虚函数,抽象类整理
抽象类,类中包含纯虚函数的为抽象类,其中抽象类的子类必须实现抽象类的纯虚函数方法. 抽象类无法实例化 虚函数,子类可以实现或者不实现该方法都可以 如果父类调用子类的基类指针时,有虚函数的则使用子类的实 ...
最新文章
- 独家 | 这15个最热门的GitHub库你不可错过!
- python下py2exe打包笔记
- C语言写的俄罗斯方块
- 测试MVC3时关于Model Builder语句的更改
- 巧用Graphviz和pvtrace等工具可视化C函数调用
- rsync命令使用方法
- 关于Java的十件事
- 手把手教你使用Numpy、Matplotlib、Scipy等5个Python库
- 靠谱测试人员需具备逻辑思考能力
- 点击菜单选项,右侧主体区新增子界面(Tab)的实现
- html清除两端浮动,HTML中如何实现浮动与清除浮动
- Mybatis ResultMap Collection 复合主键
- thinkphp5之配置tp5重写伪静态
- 计算机829大纲,829计算机基础考试大纲
- 计算机网络(谢希仁)第六版课件
- 十二位计算机的使用方法,Win10专业版12个使用技巧汇总
- 微信支付申请及简单使用
- “熊孩子”乱敲键盘攻破 Linux 桌面;苹果开源代码被发现包含兼容微信的代码;网传蚂蚁启用OKR替代KPI | EA周报...
- Rstudio与R的绑定和更新
- 大变局时代的搜索引擎走向何方?