写一个程序,定义一个抽象类Shape,由它派生3个类:Square(正方形)、Trapezoid(梯形)和Triangle(三角形)。用虚函数分别计算几种图形面积、并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。
分析:题目给出的很清楚,只要写一个基类,三个派生类,并且通过主函数显示出来就可以了。。
唯一有点难度的就是最后一句话,,用基类指针数组,使他每一个元素指向一个派生类对象。
这个可以在主函数中,声明一个数组,数组中包含各形状图形的参数,将数组的指针指向调用派生类的方法。。
源码如下:
#include <iostream>
using namespace std;
class Shape
{
public :
virtual double area() const=0;
};
//正方形:长*宽
class Square:public Shape{
public:
Square(double s):side(s){} //
double area() const{
return side*side;//正方形的面积
}
private :
double side;//定义一个私有边长
};
//梯形:(上底加下底&