点线类(使用继承的方式实现)

#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;
}

 

posted @ 2021-06-06 15:20  柏木カケル  阅读(193)  评论(0)    收藏  举报