首页 > 代码库 > 第14周项目4-立体类族共有的抽象类
第14周项目4-立体类族共有的抽象类
/**Corpyright (c)2013,烟台大学计算机学院*All right reseved.*作者:张凯*完成日期:2014年5月28日*版本号:v1.0*输入描述:*问题描述:*程序输出:*问题分析:*算法设计:*/#include<iostream>#include<cstring>using namespace std;class CSolid{ public: virtual double area()=0; virtual double volume()=0;};class CCube:public CSolid{ public: CCube(double a):length(a){} ~CCube(){} double area() { return 6*length*length; } double volume() { return length*length*length; } private: double length;};class CBall:public CSolid{ public: CBall(double r):rad(r){} ~CBall(){} double area() { return 4*3.14*rad*rad; } double volume() { return 4/3*3.14*rad*rad*rad; } private: double rad;};class CCylinder:public CSolid{ public: CCylinder(double r,double h):rad(r),heigth(h){} ~CCylinder(){} double area() { return (2*3.14*rad*rad+2*3.14*rad*heigth); } double volume() { return 3.14*rad*rad*heigth; } private: double rad; double heigth;};int main(){ //定义基类指针数组p,使它每一个元素指向一个派生类对象 CCube m1(4); CBall m2(3); CCylinder m3(2.6,6.4); CSolid *p[3]={&m1,&m2,&m3}; cout<<"正方体的面积:"<<p[0]->area()<<";"<<"体积:"<<p[0]->volume()<<endl; cout<<"球体的面积:"<<p[1]->area()<<";"<<"体积:"<<p[1]->volume()<<endl; cout<<"圆柱体的面积:"<<p[2]->area()<<";"<<"体积:"<<p[2]->volume()<<endl; return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。