定義:名稱相同但引數列表不同的函式是函式過載。運算 符過載就是對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別。
class time
time::time()
time time::operator+(const time& t)const
time time::operator-(const time& t)const
time time::operator*(double mult)const
分類:友元函式,友元類,友元成員函式。
具體來說是為了讓其他類的成員函式能直接的訪問該類的私有變數。即:允許外面的類或函式去訪問類的私有變數和保護變數,從而使兩個類共享同乙個函式。
使用友元函式的兩種情況:(1)運算子過載的某些場合需要使用友元。(2)兩個類共享資料的時候。
(1)優點:能夠提高效率,表達簡單、清晰。
(2)缺點:友元函式破壞了封裝機制,盡量不使用成員函式,除非不得已的情況才使用友元函式。
建立友元:
//friend time operator *(double m,const time &t);
class integer
;void print(const integer& obj)
void main()
(1) 成員函式有this指標,而友元函式沒有this指標。
(2)友元函式是不能被繼承的,就像父親的朋友未必是兒子的朋友。
C 學習 (使用類)
include include using namespace std struct node node int x,int y node double x,double y friend void operator ostream os,const node t void operator ost...
C 類的使用(四) 繼承
有時候,我們想要寫乙個類實現某些功能,但又想同時具備另乙個類的功能,這個時候,我就要用到類的第二大特點 繼承 class classa void setx int x intgetx protected int x 注意到我用的是protected而不是private,這是為繼承做準備 class ...
C 學習 類和物件 四)
運算子過載函式 為了增強程式的可讀性,c 支援運算子過載。運算子過載特徵 1.operator 合法的運算子構成函式名 過載 運算子的函式名 operator 2.過載運算子以後,不能改變運算子的優先順序 結合性 運算元個數。5個c 不能過載的運算子 sizeof 賦值運算子過載 拷貝建構函式是建立...