10.4抽象类
来源:互联网 发布:gs4 rx5 知乎 编辑:程序博客网 时间:2024/05/16 11:03
/** Copyright (c) 2014, 烟台大学计算机学院* All rights reserved.* 作 者:王颖* 完成日期:2014 年 5 月 28 日* 版 本 号:v1.0* 输入描述: 无* 问题描述:设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。* 程序输出:略* 问题分析:略* 算法设计:略*/#include <iostream>#include <iomanip>#define pi 3.14using namespace std;class CSolid{ public: virtual float superficial() =0; virtual float volume() =0;};class CCube:public CSolid{ public: CCube(float a1):a(a1){} virtual float superficial() { return 8*a*a; } virtual float volume() { return a*a*a; } private: float a;};class CBall:public CSolid{ public: CBall(float r1):r(r1){} virtual float superficial() { return 4*pi*r*r; } virtual float volume() { return (3/4)*pi*r*r*r; } private: float r;};class cylinder:public CSolid{ public: cylinder(float h1,float r1):h(h1),r(r1){} virtual float superficial() { return (2*pi*r*h+2*2*pi*r); } virtual float volume() { return pi*r*r*h; } private: float h,r;};int main(){ cout<<fixed<<setprecision(2); cylinder cylinder(2.1,5.1); CCube CCube(2); CBall CBall(3); CSolid *pt; pt=&CCube; cout<<"正方体表面积:"<<pt->superficial()<<endl; cout<<"体积:"<<pt->volume()<<endl; pt=&CBall; cout<<"球体表面积:"<<pt->superficial()<<endl; cout<<"体积:"<<pt->volume()<<endl; pt=&cylinder; cout<<"圆柱体表面积:"<<pt->superficial()<<endl; cout<<"体积:"<<pt->volume()<<endl; return 0;}
0 0
- 10.4抽象类
- 抽象类 抽象函数
- 抽象类、抽象方法
- 抽象类抽象方法
- 抽象类,抽象方法
- 抽象类,抽象方法
- 抽象方法,抽象类
- 抽象类、抽象方法
- 抽象类、抽象字段、抽象方法
- 抽象类、抽象方法、抽象属性
- 13.抽象类、抽象字段、抽象方法
- 抽象类
- 抽象类
- 抽象类
- 抽象类
- 抽象类
- 抽象类
- 抽象类
- Leetcode平台上的Median of Two Sorted Arrays题目用Java快排实现
- JDBC中文查询问题
- Object-c基础知识之内存管理(二)
- 10.3OJ
- socket.io系列二 聊天应用
- 10.4抽象类
- Java常见面试题笔试题
- 代做毕业设计杂感……
- ProcessExplorer查看windows进程的利器
- EXP-00091: 正在导出有问题的统计信息。/exp导出报错
- CSS属性大全
- C/C++的内存泄漏检测工具Valgrind memcheck的使用经历
- poj1258
- c++ lambda表达式