/* *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; }
第14周项目4-立体类族共有的抽象类,布布扣,bubuko.com
原文地址:http://blog.csdn.net/u012390928/article/details/27345645