complex complex::
operator
+(complex c2)
// 或
complex complex::
operator+(
const complex
&c2)
// 類內
friend complex operator
+(complex c1, complex c2)
;// 類外
complex operator
+(complex c1, complex c2)
// 或
friend complex operator+(
const complex &c1,
const complex &c2)
// 前置單目運算子過載
void
operator++(
)// 後置單目運算子過載
void
operator++(
int)
必須使用引用,否則無法改變相應物件的值
// 類內
friend
void
operator
++(clock &c)
;friend
void
operator
++(clock &c,
int)
;// 類外
void
operator
++(clock &c)
void
operator
++(clock &c,
int)
// 類內
string &
operator
=(string str2)
;// 類外: 對等號運算子進行過載, 從而進行位址的深複製 (類似自己實現的複製建構函式)
// 這種方式不支援 str2=str2 或 (str2=str1)=str2
string &string::
operator
=(string str2)
// 所以需要進一步改寫 = 操作符過載函式為:
string &string::
operator
=(string &str2)
// 也可以寫為
string &string::
operator=(
const string &str2)
return
*this
;}
函式引數和返回值都必須是 i/o 物件的引用,而且只能將<<
和>>
過載為類的友元函式
// 類內
friend ostream &
operator
<<
(ostream &
, complex &);
// 類外
ostream &
operator
<<
(ostream &output, complex &c)
如果想把複數complex
類物件 c 的實部當做普通double
數進行運算,則需要double(c)
— 型別轉換函式,把乙個類的物件轉換成另乙個型別的資料
型別轉換函式只能作為相應類的成員函式
型別轉換函式要慎用 (因為運算子優先順序問題)
// 一般形式
operator 型別名 (
)// 把複數 complex 類物件 c 的實部當做普通 double 數進行運算
operator
double()
// 型別轉換函式
// 過載為成員函式
complex &complex::
operator++(
)complex complex::
operator++(
int)
// 過載為友元函式
complex &
operator
++(complex &c)
complex operator
++(complex &c,
int k)
第12課 操作符過載 上
source example 1 include using namespace std int main cout物件 顯示器物件,輸出 cin物件 鍵盤物件,輸入 source example 1.7 include using namespace std int main int main c...
C 第30課 操作符過載的概念
本文學習自 狄泰軟體學院 唐佐林老師的 c 課程 實驗1 通過實現 add 實現複數相加 實驗2 操作符過載實驗 實驗3 將操作符過載定義為類的成員函式,編譯器優先在成員函式中尋找操作符過載函式 實驗1 通過實現 add 實現複數相加 實驗2 操作符過載實驗 實驗3 將操作符過載定義為類的成員函式,...
C 學習筆記 第34課 陣列操作符的過載
1.過載陣列訪問修飾符 被忽略的事實,陣列訪問符是c c 中的內建操作符 陣列訪問符的原生意義是陣列訪問和指標運算 訪問某個元素 c語言深度剖析 a n a n n a n a 2.指標與陣列的複習 34 2.cpp include include using namespace std intma...