结构推理 定义一个Shape类为抽象类,其中定义一个求面积的纯虚函数,从它派生出三角形(triangle)、矩形(rectangle)、圆(circle)三个子类,每个子类有各自不同的计算面积的公式:三角形(底*高*0.5)、矩形(长*宽)、圆(3.14*R*R)。写一个计算不同几何图形总面积的函数,并在main()函数中定义几个子类对象以验证该函数。
【正确答案】A:shape.h头文件 class shape{ public: shape(){cout<<"Shape this->"< #include "shape.h" float total(shape *s[],int n) { float sum=0; for(int i=0;iarea(); return sum; } class triangle:virtual public shape{ protected: float H,W; public: triangle(float h,float w){H=h;W=w;} float area(){return H*W*0.5;} }; class rectangle:virtual public triangle{ public: rectangle(float h,float w):triangle(h,w){} float area(){return H*W;} }; class circle:virtual public shape{ protected: float radius; public: circle(float r){radius=r;} float area(){return radius*radius*3.14;} }; void main() { shape *s[4]; s[0]=new triangle(3.0,4.0); s[1]=new rectangle(2.0,4.0); s[2]=new circle(5.0); s[3]=new circle(8.0); float sum=total(s,4); cout<<"Sum="<
【答案解析】