設計簡單的C 程式,要求包括建構函式,解構函式和複製函

時間 2021-08-11 17:47:17

1樓:匿名使用者

我們課堂上剛練習了,同學,給你吧。

#include

using namespace std;

class point

拷貝建構函式

friend point move(point q); //友元函式宣告

~point() // 解構函式int getx()

int gety()

void main()

2樓:匿名使用者

建構函式、解構函式與賦值函式是每個類最基本的函式。它們太普通以致讓人容易麻痺大意,其實這些貌似簡單的函式就象沒有頂蓋的下水道那樣危險。

每個類只有一個解構函式和一個賦值函式,但可以有多個建構函式(包含一個拷貝建構函式,其它的稱為普通建構函式)。對於任意一個類a,如果不想編寫上述函式,c++編譯器將自動為a產生四個預設的函式,如

a(void); // 預設的無引數建構函式

a(const a a); // 預設的拷貝建構函式

~a(void); // 預設的解構函式

a operate =(const a a); // 預設的賦值函式

這不禁讓人疑惑,既然能自動生成函式,為什麼還要程式設計師編寫?

原因(1)如果使用「預設的無引數建構函式」和「預設的解構函式」,等於放棄了自主「初始化」和「清除」的機會,c++發明人stroustrup的好心好意白費了。

(2)「預設的拷貝建構函式」和「預設的賦值函式」均採用「位拷貝」而非「值拷貝」的方式來實現,倘若類中含有指標變數,這兩個函式註定將出錯。

對於那些沒有吃夠苦頭的c++程式設計師,如果他說編寫建構函式、解構函式與賦值函式很容易,可以不用動腦筋,表明他的認識還比較膚淺,水平有待於提高。

本章以類string的設計與實現為例,深入闡述被很多教科書忽視了的道理。string的結構

class string;

設計一個圓類,包括成員函式資料半徑,函式成員求面積和半徑,必須有建構函式,複製建構函式,解構函式

簡單的C 程式,簡單的C 程式

include include using namespace std define maxn 1000 struct studentstu maxn int main while 1 stu maxn int main while 1 if i n cout 沒找到!n return 0 其實上面...

簡單的c語言程式,一個簡單的c語言程式

很多程式都是非常簡單的 1.輸入2個正整數m和n,求其最大公約數和最小公倍數 include include int main 3.程式設計計算從1到10各數階乘的和,即1 2 3 9 10 的和 include int main void printf 1到10各數階乘的和 d n sum ret...

用C語言編簡單的數學計算程式要求輸入題目數

include include include void main int a,b,i,op,r,c 0 c表示答對題目數,r記錄回答結果 int n,s printf 您希望出多少道題目 n scanf d n s n while n srand time 0 a rand 10 1 b rand...