題目描述
設計乙個點類point,包含私有屬性x座標和y座標,操作包括
2、析構函式,把x座標和y座標都清0,並輸出資訊「point clear」
3、設定(setxy),接受外來輸入,並設定x座標和y座標
4、獲取x座標,直接返回x值
5、獲取y座標,直接返回y值
設計乙個圓類circle,包含私有屬性:圓心座標x和y、半徑r;操作包括:
1、建構函式,接受外來輸入,設定圓心x座標、y座標和半徑
2、析構函式,將圓心座標x和y以及半徑都清零,並輸出"circle clear"
輸入第一行輸入乙個點的x座標和y座標,用point類去建立乙個點物件,並且自動通過建構函式來初始化
第二行輸入n,用point類去建立乙個點物件陣列,包含n個點
第三行起輸入n行,每行輸入乙個點的x和y座標,使用設定(setxy)來設定每個點的x和y座標
接著一行輸入三個引數,表示乙個圓的圓心座標x和y,以及半徑,使用circle類去建立乙個圓物件,並自動通過建構函式來初始化
輸出通過呼叫圓的包含(contain)方法,判斷每個點是否在圓內。
按照點的輸入順序,每行輸出乙個點的判斷結果,如果包含則輸出in,不包含則輸出out
說明:當乙個物件陣列是動態建立的,那麼在程式結束時,這個陣列是不會被**。只有增加**delete p,才會**陣列。
本題不要求收回陣列.
樣例輸入
5 23
4 79 9
2 43 3 3
樣例輸出
inout
outin
circle clear
point clear.
#include
#include
using
namespace std;
class
point
;point::
point()
point::
point
(double x,
double y)
void point::
setxy()
double point::
getx()
double point::
gety()
point::
~point()
class
circle
;circle::
circle()
double circle::
getcx()
double circle::
getcy()
bool circle::
contain
(point* point)
circle::
~circle()
intmain()
circle circle;
if(circle.
contain
(&point1)
)else
for(
int i =
0; i < n; i++
)else
}delete
pointpointarray;
return0;
}
構造 析構 賦值運算
非內建資料型別 一般而言,只有當生出的 合法且有適當機會證明它有意義,編譯器才會為class 生出operator 建構函式 析構函式 stl 或標準庫或已經存在的,不包含虛函式的類,我們不應該繼承它們 比較好的一種辦法是,自己在析構函式中,可以選擇,記錄並退出,或者記錄並繼續執行。但同時提供乙個p...
構造 析構 賦值運算
條款05 了解c 默默編寫並呼叫哪些函式 如果我們寫了乙個空類 class empty 編譯器會為這個類新增一些default的函式,相當於 class empty default建構函式 empty const empty rhs copy建構函式 empty 析構函式 empty operato...
C 構造 析構 賦值運算
有時候,某個物件是獨一無二的,不能沒複製也不能被賦值!所以我們要強制編譯器不允許使用 和copy 建構函式,但如果你不寫他們,編譯器又會自動幫你加上,問題由此引發。class home uncopyable private uncopyable const uncopyable uncopyable...