项目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