第十三周项目2-形状类族的中的纯虚函数
2015-05-29 15:47
399 查看
/* *Copyright (c) 2014, 烟台大学计算机学院 *All rights reserved. *文件名称:week13-2.cpp *作者:高赞 *完成日期:2015年 5 月 29 日 *版本号:v1.0 * *问题描述:定义抽象基类Shape,3个派生类Circle、Rectangle、Triangle * 求出定义的几个几何体的面积和 */ #include <iostream> using namespace std; class Shape { public: virtual double area()=0; }; class Circle:public Shape { public: Circle(double a=0):r(a) {} double area() { return 3.141592*r*r; } private: double r; }; class Rectangle:public Shape { public: Rectangle(double a,double b):l(a),w(b) {} double area() { return l*w; } private: double l; double w; }; class Triangle:public Shape { public: Triangle(double a,double b):l(a),h(b) {} double area() { return 0.5*l*h; } private: double l; double h; }; int main() { Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半径 Rectangle r1(4.5,8.4),r2(5.0,2.5);//建立Rectangle类对象r1,r2,参数为矩形长、宽 Triangle t1(4.5,8.4),t2(3.4,2.8); //建立Triangle类对象t1,t2,参数为三角形底边长与高 Shape *pt[6]= {&c1,&c2,&r1,&r2,&t1,&t2}; //定义基类指针数组pt,使它每一个元素指向一个派生类对象 double areas=0.0; //areas为总面积 for(int i=0; i<6; i++) { areas=areas + pt[i]->area(); } cout<<"totol of all areas="<<areas<<endl; //输出总面积 return 0; }
相关文章推荐
- chrome贴吧插件——源代码
- 第18章 人口普查
- PopupWindow
- SAT填空题答题的两个注意事项
- LeetCode -- Add Two Numbers
- leetcode | Next Permutation
- LFS6.3安装全过程(五)
- 浏览器提示Uncaught TypeError: object is not a function XXX onclick
- ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法
- CSDN学院系统停站维护
- CPU.GPU 安卓设备 内存 硬盘排名 (天梯图) 网址
- oracle dual
- /usr/libexec/gconf-sanity-check-2 退出状态256
- [Selenium] 如何使用Chrome Options 定制测试Chrome 浏览器的特定属性 (类似FirefoxProfiles)
- query或者JavaScript实现在textarea光标处插入文本
- 整理CSS引发的相关理论的梳理
- Application详解
- Android实现多线程断点下载的方法
- angularjs学习:事件
- .tar.bz2文件解压命令