返回:賀老師課程教學鏈結
專案要求
【專案4 - 點、圓的關係】
(1)先建立乙個point(點)類,包含資料成員x,y(座標點);
(2)以point為基類,派生出乙個circle(圓)類,增加資料成員(半徑),基類的成員表示圓心;
(3)編寫上述兩類中的構造、析構函式及必要運算子過載函式(本專案主要是輸入輸出);
(4)定義友元函式int locate,判斷點p與圓的位置關係(返回值<0圓內,==0圓上,>0 圓外);
int main( )
//建構函式
double distance(const point &p) const; //求距離
friend ostream & operator<<(ostream &,const point &);//過載運算子「<<」
protected: //受保護成員
double x,y;};
double point::distance(const point &p) const //求距離
ostream & operator<<(ostream &output,const point &p);
//過載運算子「<<」,使之按規定的形式輸出圓的資訊
ostream &operator<<(ostream &output,const circle &c)
//建構函式
protected: //受保護成員
double x,y;
};class circle:public point //circle是point類的公用派生類
//建構函式
double area ( ) const; //計算圓面積
friend ostream &operator<<(ostream &,const circle &);//過載運算子「<<」
//過載關係運算子運算子,使之能夠按圓的面積比較兩個圓的大小;
bool operator>(const circle &);
bool operator<(const circle &);
bool operator>=(const circle &);
bool operator<=(const circle &);
bool operator==(const circle &);
bool operator!=(const circle &);
protected:
double radius;
};//計算圓面積
double circle::area( ) const
//過載運算子「<<」,使之按規定的形式輸出圓的資訊
ostream &operator<<(ostream &output,const circle &c)
bool circle::operator<(const circle &c)
bool circle::operator>=(const circle &c)
bool circle::operator<=(const circle &c)
bool circle::operator==(const circle &c)
bool circle::operator!=(const circle &c)
int main( )
//建構函式
friend ostream & operator<<(ostream &,const point &);//過載運算子「<<」
friend void crossover_point(point &p,circle &c, point &p1,point &p2 ) ; //求交點的友元函式
protected: //受保護成員
double x,y;
};ostream & operator<<(ostream &output,const point &p)
//建構函式
friend ostream & operator<<(ostream &,const point &);//過載運算子「<<」
friend doublepoint crossover_point(point &p,circle &c) ; //求交點的友元函式
protected: //受保護成員
double x,y;
};ostream & operator<<(ostream &output,const point &p)
class circle:public point //circle是point類的公用派生類
//建構函式
friend ostream &operator<<(ostream &,const circle &);//過載運算子「<<」
friend doublepoint crossover_point(point &p,circle &c) ; //求交點的友元函式
protected:
double radius;
};//過載運算子「<<」,使之按規定的形式輸出圓的資訊
ostream &operator<<(ostream &output,const circle &c)
struct doublepoint //專門用於返回值的結構體型別
;//給定一點p,求出該點與圓c的圓心相連成的直線與圓的兩個交點
//方案2:結果返回到doublepoint型別的結構體中
//crossover_point函式已經宣告為point和circle類的友元函式,類中私有成員可以直接訪問
doublepoint crossover_point(point &p, circle &c)
int main( )
C 實踐參考 點類派生直線類
專案 點類派生直線類 定義點類point,並以點類為基類,派生出直線類line,從基類中繼承的點的資訊表示直線的中點。請閱讀下面的 並將缺少的部分寫出來。include includeusing namespace std class point 定義座標點類 point double x0,dou...
C 實踐參考 點類派生直線類
專案 點類派生直線類 定義點類point,並以點類為基類,派生出直線類line,從基類中繼承的點的資訊表示直線的中點。請閱讀下面的 並將缺少的部分寫出來。include includeusing namespace std class point 定義座標點類 point double x0,dou...
《C 語言基礎》實踐參考 鍊錶類
返回 賀老師課程教學鏈結 專案要求 專案 鍊錶類 動態鍊錶也是程式設計中的一種非常有用的資料結構。可以說,是否能夠理解有關操作的原理,決定了你是否有資格稱為 科班 出身。在後續的專業基礎課中,相關的內容還會從不同的角度,反覆地認識,反覆地實踐。不過,在現階段多些體驗,也是很有必要的了。1 閱讀下面的...