定义抽象基类shape,由它派生5个类:circle,square,rectangle,trapezoid,triangle。用虚函数分别计算图形的面积,要求用基类指针数组,使他们的每个元素指向一个派生类对象。
#include<iostream>
#include<math.h>
using namespace std;
class Shape
{
public:
virtual void ShapeName(){} //虚函数
virtual float area() { return 0.0; } //虚函数
};
class Circle:public Shape
{
public:
Circle(float r){ radius = r; }
virtual void ShapeName() { cout << "Circle area: "; } //对虚函数再定义
virtual float area() { return 3.14*radius*radius; }
protected:
float radius;
};
class Square :public Shape
{
public:
Square(float s){ side = s; };
virtual void ShapeName() { cout << "Square area: "; }
virtual float area(){ return side*side; }
protected:
float side;
};
class Rectangle :public Shape{
public:
Rectangle(float a, float b){ length = a; width = b; };
virtual void ShapeName() { cout << "Rectangle area: