#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
class Shape
{
public:
virtual float area(){return 0;}
virtual float volume(){return 0;}
virtual void shapeName()=0;
};
class Circle:public Shape
{
public:
Circle(float r):radius(r){}
float area();
void shapeName()
{
cout<<"Circle"<<endl;
}
private:
float radius;
};
float Circle::area()
{
return 3.14*radius*radius;
}
class Rectangle:public Shape
{
public:
Rectangle(float a,float b):l(a),w(b){}
float area();
void shapeName()
{
cout<<"Rectangle"<<endl;
}
private:
float l,w;
};
float Rectangle::area()
{
return l*w;
}
class Triangle:public Shape
{
public:
Triangle(float a,float b,float c):l(a),w(b),h(c){}
float area();
void shapeName()
{
cout<<"Triangle"<<endl;
}
private:
float l,w,h;
};
float Triangle::area()
{
float t,s;
t=(l+w+h)/2.0;
s=sqrt(t*(t-l)*(t-w)*(t-h));
return s;
}
int main()
{
Shape *p;
Circle circle(1.0);
Rectangle rectangle(2,3);
Triangle triangle(3.0,4.0,5.0);
p=&circle;
p->shapeName();
cout<<p->area()<<endl;
p=&rectangle;
p->shapeName ();
cout<<p->area()<<endl;
p=▵
p->shapeName ();
cout<<p->area()<<endl;
return 0;
}
纯虚函数与抽象类练习题
最新推荐文章于 2021-06-06 10:19:57 发布