#include
using namespace std;
class Line
{
private:
double x1,x2,y1,y2;
public:
void setPoint1(double a,double b)
{
x1=a;
y1=b;}
void setPoint2(double a,double b)
{
x2=a;
y2=b;}
void getPoint1()
{
cout< }
void getPoint2()
{
cout< }
Line(double a1,double a2,double b1,double b2)
{
setPoint1(a1,b1);
setPoint2(a2,b2);
}
};
class Rectangle:public Line
{
private:
float a;//矩形的长
float b;//矩形的宽
public:
float getArea()
{
return (float)(a*b);
}
float getCircumference()
{
return (float)((a+b)*2.0);
}
Rectangle(float q1,float q2, float p1, float p2):Line(q1,q2,p1,p2)//以线段作为对角线派生矩形
{
a=abs(p2-p1);
b=abs(q2-q1);
}
};
class Triangle:public Line
{
private:
float a,b,c;
public:
float getArea()
{
//已知三角形三条边,用海伦公式计算面积
double d=(a+b+c)/2;
double s=sqrt( d*(d-a)*(d-b)*(d-c) );
return s;
}
float getCircumference()
{
return (float)(a+b+c);
}
Triangle(float q1,float q2, float p1, float p2,float x,float y):Line(q1,q2,p1,p2)//以线段作为一条边派生三角形
{
if( ((x-q1)/(y-p1)) != ((x-q2)/(y-p2)) )//该点不在直线上
{
a=sqrt( (y-p1)*(y-p1)+(x-q1)*(x-q1) );
b=sqrt( (y-p2)*(y-p2)+(x-q2)*(x-q2) );
c=sqrt( (p1-p2)*(p1-p2)+(q1-q2)*(q2-q2) );
}
}
};
int main()
{
Triangle s(15,11,45,56,65,56);
cout cout< return 0; }