點圓運算(構造與析構)

2021-10-07 21:32:40 字數 1632 閱讀 5855

題目描述

設計乙個點類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...