基类shape类是一个表示形状的抽象类,area( )为求图形面积的函数。请从shape类派生三角形类(triangle)、圆类(circles)、并给出具体的求面积函数。注:圆周率取3.14
#include<iostream>
class shape
{
public:
virtual float area()=0;
};
参考的主函数如下:
int main()
{
shape *p;
triangle t(3,4,5);
circles c(10);
p=&t;
cout<<"triangle area:"<<p->area()<<endl;
p=&c;
cout<<"circles area:"<<p->area()<<endl;
}
【输入形式】
无
【输出形式】
程序的参考输出如下:
triangle area:6
circles area:314
#include<iostream>
#include<cmath>
using namespace std;
class shape
{
public:
virtual float area()=0;
};
class triangle : public shape {
private:
float side1, side2, side3;
public:
triangle(float s1, float s2, float s3) : side1(s1), side2(s2), side3(s3) {}
virtual float area() {
float s = (side1 + side2 + side3) / 2;
return sqrt(s * (s - side1) * (s - side2) * (s - side3));
}
};
class circles : public shape {
private:
float radius;
static float PI;//静态成员变量声明
public:
circles(float r) : radius(r) {}
virtual float area() {
return PI * radius * radius;
}
};
float circles:: PI = 3.14;//可以用#define PI 3.14来替换
int main()
{
shape *p;
triangle t(3,4,5);
circles c(10);
p=&t;
cout<<"triangle area:"<<p->area()<<endl;
p=&c;
cout<<"circles area:"<<p->area()<<endl;
}