i6lan 分享题目的网站
试一试站内搜索 题目类型:问答题

日常歇后语“菜刀切豆腐”表示什
计算机信息系统的安全保密管理人
2018年我国开展第四次经济普
关于蚂蚁的歇后语“蚂蚁戴夹板”
三国演义歇后语“关云长走麦城”

写一个程序,定义一个抽象类Shape,由它派生3类:Square(正方形)、Trapezoid(梯形)和Triangle三角形。用虚函数分别计算几种图形面积、并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。


#include <iostream.h>

  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;

};

class Trapezoid:public Shape

{public:

Trapezoid(double i,double j,double k):a(i),b(j),h(k)

{}

double area() const{return ((a+b)*h/2);}

private:

double a,b,h;

};

class Triangle:public Shape

{public:

Triangle(double i,double j):w(i),h(j)

{}

double area() const{return(w*h/2);}

private:

double w,h;

};

void main()

{Shape *p[5];

Square se(5);

Trapezoid td(2,5,4);

Triangle te(5,8);

p[0]=&se;

p[1]=&td;

p[2]=&te;

double da=0;

for(int i=0;i<3;i++)

{da+=p[i]->area();}

cout<<"总面积是:"<<da<<endl;

}__

上一题 下一题

CopyRight©i6lan.com 关于本站
蜀ICP备2021017061号-1

川公网安备 51010402001278号