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...