/* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: CSolid.cpp * 作 者:李巧丽 * 完成日期:2013 年6月4日 * 版本号: v1.0 * 对任务及求解方法的描述部分:略 * 输入描述:略 * 问题描述:略 */ #include<iostream> #define pi 3.1415926 using namespace std; class CSolid { public: virtual double area()=0; virtual double cube()=0; }; class CCube:public CSolid//正方体 { public: CCube (double l){length=l;}; double area(){return length*length*6;}; double cube(){return length*length*length;}; private: double length; }; class CBall:public CSolid//球体 { public: CBall(double r){radius=r;}; double area(){return 4*pi*radius*radius;}; double cube(){return 4/3*pi*radius*radius*radius;}; private: double radius; }; class CCylinder:public CSolid//圆柱体 { public: CCylinder(double r,double h){radius=r,high=h;}; double area(){return (2*pi*radius*high+2*pi*radius*radius);}; double cube(){return pi*radius*radius*high;}; private: double radius; double high; }; int main() { CSolid *p; CCube a(4); p=&a; cout<<"边长是4的正方体表面积是"<<p->area()<<endl; cout<<"边长是4的正方体体积是"<<p->cube()<<endl; CBall b(6); p=&b; cout<<"半径是6的球体表面积是"<<p->area()<<endl; cout<<"半径是6的球方体体积是"<<p->cube()<<endl; CCylinder c(3,4); p=&c; cout<<"底面半径是3,高是4的圆柱体表面积是"<<p->area()<<endl; cout<<"底面半径是3,高是4的圆柱体体积是"<<p->cube()<<endl; return 0; }
运行结果: