第十一週項目3-点類派生直線類

2269 ワード

ポイントクラスPointを定義し、ポイントクラスをベースクラスとして直線クラスLineを派生させ、ベースクラスから受け継いだポイントの情報は直線の中点を表す.
/*
 *Copyright  (c)  2014,         
 *All rights reserved.
 *    : test.cpp
 *          :   
 *    :2015   5   18  
 *   :v1.0
 */
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cmath>
using namespace std;
class Point //      
{
public:
    Point():x(0),y(0) {};
    Point(double x0, double y0):x(x0), y(y0) {};
    double getx();
    double gety();
    void PrintPoint(); //      
protected:
    double x,y;   //         
};
void Point::PrintPoint()
{
    cout<<"Point: ("<<x<<","<<y<<")";    //   
}
class Line: public Point   //           ,                
{
public:
    Line(Point pts, Point pte); //    ,                        
    double Length();    //          
    void PrintLine();   //              
private:
    Point pts,pte;   //       , Point               
};
double Point::getx()
{
    return x;
}
double Point::gety()
{
    return y;
}
void Line::PrintLine()
{
    cout<<"1st Point is:";
    pte.PrintPoint();
    cout<<"
2nd Point is:";     pts.PrintPoint();     cout<<'
'<<"Line'length:";     cout<<Length()<<endl; } Line::Line(Point ts, Point te):Point((ts.getx()+te.getx())/2,(ts.gety()+te.gety())/2) {     pte=te;     pts=ts; } double Line::Length() {     double l;     l=sqrt((pts.getx()-pte.getx())*(pts.getx()-pte.getx())+(pts.gety()-pte.gety())*(pts.gety()-pte.gety()));     return l; } 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; }

画像:
心得:
so easy~