码迷,mamicode.com
首页 > 其他好文 > 详细

点类派生直线类

时间:2015-05-30 09:25:57      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:acm   class   计算机   继承   

  输入代码:

/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:sum123.cpp
*作    者:林海云
*完成日期:2015年5月29日
*版 本 号:v2.0
*
*问题描述:定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点。
           请阅读下面的代码,并将缺少的部分写出来。
*程序输入:无
*程序输出:按要求输出点线的信息
*/
#include<iostream>
#include<Cmath>
using namespace std;
class Point //定义坐标点类
{
 public:
     Point():x(0),y(0) {};
     Point(double x0 ,double y0): x(x0),y(y0){};
     double getX()//利用get()的形式可以输入两个不同的点
    {
        return x;
    }
    double getY()
    {
        return y;
    }

     void PrintPoint();//输出点的信息
 protected:
    double x,y;
};
class Line:public Point//利用坐标点类定义直线类, 其基类的数据成员表示直线的中点
{
 public:
     Line(Point pts,Point pte);
     double Length();//计算并返回直线的长度
     void PrintLine();//输出直线的两个端点和直线长度
 private:
    class Point pts,pte;
};
void Point::PrintPoint()
{
    cout<<"Point: ("<<x<<","<<y<<")"<<endl;
}
//构造函数,分别用初始化直线的两个端点及由基类数据成员(属性)描述的中点
Line::Line(Point pt1, Point pt2):Point((pt1.getX()+pt2.getX())/2,(pt1.getY()+pt2.getY())/2)//继承前一类的成员或函数时用一个点
{
    pts=pt1;
    pte=pt2;
}
double Line::Length()  //计算并返回直线的长度
{
    double dx = pts.getX() - pte.getX();
    double dy =pts.getY() - pte.getY();
    return sqrt(dx*dx+dy*dy);
}
void Line::PrintLine()//两个点的表示类的一个函数
{
    cout<<" 1st ";
    pts.PrintPoint();

    cout<<" 2nd ";
    pte.PrintPoint();
    cout<<" The Length of Line: "<<Length()<<endl;
}

int main()
{
    Point ps(-2,5),pe(7,9);
    Line l(ps,pe);
    cout<<"About the Line:"<<endl;
    l.PrintLine();//输出直线l的信息
    cout<<"The middle point of Line is:";
    l.PrintPoint();//输出直线l中点的信息
    return 0;
}



运行结果:

技术分享

点类派生直线类

标签:acm   class   计算机   继承   

原文地址:http://blog.csdn.net/linhaiyun_ytdx/article/details/46240811

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!