编写完成如下程序中“……”部分,程序定义一个抽象类Shape,由它派生3个类:Square(正方形)、Trapezoid(梯形)和Triangle(三角形),用虚函数分别计算几种图形的面积、并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。
#include
using namespace std;
class Shape
{public:
virtual double area()const =0;
};
编写完成如下程序中“……”部分,程序定义一个抽象类Shape,由它派生3个类:Square(正方形)、Trapezoid(梯形)和Triangle(三角形),用虚函数分别计算几种图形的面积、并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。
#include
using namespace std;
class Shape
{public:
virtual double area()const =0;
};
……
void main()
{Shape*p[3];
Square se(5);
Trapezoid td(2,5,4);
Triangle te(5,8);
p[O]=&se;
p[1]=&td;
p[2]=&te;
double da=0;
for(int i=0;i< 3;i++)
{da+=p[i]->area();}
cout< < ”总面积是:”< < da< < endl;
}
【正确答案】:
Top