定義點類,並以點類為基類,派生出直線類,從基類中繼承的點的資訊表示直線的中點。
阿新 • • 發佈:2018-12-31
#include<iostream> #include<cmath> using namespace std; class Point //定義座標點類 { public: //定義必要的建構函式 Point(double a=0,double b=0):x(a),y(b){} double xreturn(){return x;} double yreturn(){return y;} void PrintPoint() //輸出點的資訊 { cout<<"("<<x<<","<<y<<")"<<endl; } private: double x,y; //點的橫座標和縱座標 }; class Line: public Point //利用座標點類定義直線類, 其基類的資料成員表示直線的中點 { public: Line(Point M, Point N) //建構函式,使用已經初始化的兩個端點計算基類資料成員描述的中點 { pts=M;pte=N; } void PrintLine() //輸出直線的兩個端點和直線長度 { cout<<"端點:"<<"("<<pts.xreturn()<<","<<pts.yreturn()<<")"<<endl; cout<<"端點:"<<"("<<pte.xreturn()<<","<<pte.yreturn()<<")"<<endl; double a=pts.xreturn()-pte.xreturn(); // cout<<"a="<<a<<endl; double b=pts.yreturn()-pte.yreturn(); // cout<<"b="<<b<<endl; cout<<"直線長度:"<<sqrt(a*a+b*b)<<endl; } private: class Point pts, pte; //直線的兩個端點 }; int main() { Point ps(-2,5),pe(4,13); Line l(ps,pe); //下面輸出直線l的端點、長度和、中點的資訊 l.PrintLine(); return 0; }