1樓:匿名使用者
我們課堂上剛練習了,同學,給你吧。
#include
using namespace std;
class point
point(point &p); //拷貝建構函式
friend point move(point q); //友元函式宣告
~point() // 解構函式int getx()
int gety()
};point::point(point &p)point move(point q)
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 設計簡單的計算器程式,只要求能進行加減乘除運算
煙子丹 include using std cin using std cout int main return 0 如果不限定for或while,還有兩種簡單思路 輸入乙個string遍歷字元,搜尋符號 2.while cin int while cin char while cin int 依靠...
c語言設計1設計程式來模擬簡單的手持
厚鴻騫 首先你輸入的表示式是乙個字串,應該放在陣列裡,然後你得用程式來解析這個字串轉化為四則運算,加減乘除括號這些在一起的話你得考慮優先順序,自己多想想吧 int cal int a,char c,int b return 0 做1個自定義函式 就行了 c語言設計 1 設計乙個程式來模擬乙個簡單的手...
用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...