8.6 几何形体的派生关系如下:
对平面形体有长和面积,对立体有表面积和体积,对几何图形基类,周长、面积和体积应怎样计算(用什么函数)?对平面图形体积怎样计算(用什么函数)?对立体图形周长怎么计算(用什么函数)?要求实现运行时的多态性。请编程,并测试。
解:运行时的多态性要用指针
#include <iostream>
#include <cmath>
using namespace std;
const double PI=3.1415926535;
class Geometric_shape{//几何图形
public:
virtual double perimeter()=0; //周长
virtual double area()=0; //面积
virtual double volume()=0; //体积
virtual void Show(){};
};
class Circle :public Geometric_shape{//圆
double radius;
public:
Circle(){radius = 0; }
Circle(double vv){radius = vv;}
double perimeter(){return 2.0*PI*radius;} //周长
double area(){return PI*radius*radius;} //面积
double volume(){return 0;} //体积
void Show(){cout<<"radius="<<radius<<endl;}
};
clas