第十三周项目3-形状类族的中的纯虚函数
2016-06-02 08:59
211 查看
/*Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称 : *作 者 : 徐聪 *完成日期 : 2016年6月2号 *版 本 号 : v1.0 * *问题描述 : 形状类族中的纯虚函数 * */ #include <iostream> using namespace std; class Shape { public: virtual double area() =0; }; class Circle:public Shape { public: virtual double area(); Circle(double a):r(a){} private: double r; }; double Circle::area() { double s; s=3.14*r; return s; } class Rectangle:public Shape { public: Rectangle(double c,double k):chang(c),kuan(k){} virtual double area(); protected: double chang; double kuan; }; double Rectangle::area() { double s; s=chang*kuan; return s; } class Triangle:public Shape { public: Triangle(double d,double h):dibian(d),gao(h){} virtual double area(); protected: double dibian; double gao; }; double Triangle::area() { double s; s=0.5*dibian*gao; return s; } 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; }
运行结果
相关文章推荐
- 08.LoT.UI 前后台通用框架分解系列之——多样的Tag选择器
- celery消息的编码和序列化(转)
- Java访问Hadoop分布式文件系统HDFS的配置说明
- JAVA基础应用——tomcat-redis-session-manager Redis共享Session
- 观察者模式
- 最新android studio 第三方库包导入方法jar,so,module
- Android Camera 小结
- c++编译遇到的问题
- C# 设计模式系列教程-单例模式
- 第十二周项目训练1.1 阅读程序
- 第九周阅读程序2
- 深入理解JS异步编程三(promise)
- js实现下拉菜单
- HDU 不容易系列之一
- 深入理解Ajax的get和post请求
- Android Studio系列-签名打包
- Java继承,子类默认在构造函数中用super()调用父类构造函数
- super关键字的使用
- 第十 十一周点-圆-圆柱类族的设计(2)
- 第十四周项目1——排序函数模板