项目3 - 点类派生直线类】定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点。请阅读下面的代码,并将缺少的部分写出来。
程序运行代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:d.cpp
*作    者:张旺华
*完成日期:2015年5月31日
*版 本 号:v1.0
*/
#include <iostream>
#include<iomanip>
#include<cstring>
#include <cmath>
using namespace std;
class Point
{
public:
    Point(double x=0,double y=0):X(x),Y(y) {}
    void printPoint();
    double getX();
    double getY();
protected:
    double X,Y;
};
void Point::printPoint()
{
    cout<<"("<<X<<","<<Y<<")"<<endl;
}
double Point::getX()
{
    return X;
}
double Point::getY()
{
    return Y;
}
class Line :public Point
{
public:
    Line(Point P1=(0,0), Point P2=(0,0)):p1(P1),p2(P2), p((P1.getX()+P2.getX())/2,(P1.getY()+P2.getY())/2) {};
    double Length();   //求线段长度
    void printLine();  //输出线段起始点、终止点,长度
   void  printPoint(); //输出线段中点坐标
private:
    Point p1,p2,p;
};
void Line::printPoint()   
{
    cout<<"("<<p.getX()<<","<<p.getY()<<")"<<endl;
}
void Line::printLine()
{
    cout<<" 1st "<<endl;
    p1.printPoint();
    cout<<" 2nd "<<endl;
    p2.printPoint();
    cout<<" The Length of Line: "<<Length()<<endl;
}
double Line::Length()
{
    double dx = p1.getX() - p2.getX();
    double dy =p1.getY() - p2.getY();
    return sqrt(dx*dx+dy*dy);
}
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;
}
知识点运用及学习心得:
考察构造函数,继承的理解。
第十一周 项目3 - 点类派生直线类】定义点类Point,并以点类为基类,继承关系
原文地址:http://blog.csdn.net/wh201458501106/article/details/46293323