#include <bits/stdc++.h>
using namespace std;
class Dot
{
public:
float x,y;//公有的数据成员
Dot(float a=0,float b=0)
{
x=a;
y=b;
}//构造函数
void show()
{
cout<<"x="<<x<<'\t'<<"y="<<y<<endl;
} //公有成员函数,在类内定义 内联函数
};
class Line:public Dot
{
Dot d1,d2;//声明基类的对象为派生类的私有数据成员 注意:此时没有分配空间
public:
Line(Dot dot1,Dot dot2):d1(dot1),d2(dot2)//对基类对象的初始化
{
x=(d1.x+d2.x)/2;
y=(d1.y+d2.y)/2;
}
void showl ()
{
cout<<"Dot1:";d1.show();
cout<<"Dot2:";d2.show();
cout<<"length="<<sqrt(((d1.x)-(d2.x))*((d1.x)-(d2.x))+((d1.y)-(d2.y))*((d1.y)-(d2.y)))<<endl;
cout<<"mid:"<<"x="<<x<<'\t'<<"y="<<y<<endl;
} //公有的成员函数 内联函数
};
int main()
{
float a,b;
cout<<"Input Dot1:";
cin>>a>>b;
Dot dot1(a,b);//调用基类的构造函数
cout<<"Input Dot2:";
cin>>a>>b;
Dot dot2(a,b);//调用基类的构造函数
Line line(dot1,dot2);//调用派生类的构造函数
line.showl();//调用成员函数
return 0;
}