<C++程序设计>——多态性与虚函数(例题)
定义一个Shape基类,并派生出圆球体(Sphere)和立方体类(Cube),分别求圆球体与立方体对象的表面积和体积。
#include<iostream.h>
#include<math.h>
#define PI 3.1415926
class Shape
{
protected:
double a;
public:
Shape(double x){a=x;}
virtual double Area()=0;
virtual double Volume()=0;
};
class Sphere:public Shape
{
double r;
public:
Sphere(double rad):Shape(a)
{r=rad;}
double Area()
{return 4*PI*r*r;}
double Volume()
{return 4/3*PI*r*r*r;}
};
class Cube:public Shape
{
double a;
public:
Cube(double x):Shape(a)
{a=x;}
double Area()
{return 6*a*a;}
double Volume()
{return a*a*a;}
};
void fun(Shape *pb)
{cout<<pb->Area()<<'\t'<<pb->Volume()<<endl;}
void main ()
{
Sphere sp(2);
cout<<"圆球体的表面积和体积为:";
fun(&sp);
Cube cu(2);
cout<<"立方体的表面积和体积为:";
fun(&cu);
}
##程媛小白,学术不精,还望各位多多指导,嘿嘿##