關於C++中操作符重載的問題

在C++中操作符可以進行重載,其依賴的關鍵字是operator,在具體應用的時候按照如下格式進行使用:

以類成員函數的形式進行重載的時候:

返回值 類名::operator被重載操作符(參數)

※這裏參數肯定要傳進來一個本類對象,例 TEST TEST::operator+(TEST& data) const;這樣子的函數形式。

以頂層函數的形式進行重載的時候:

返回值 operator被重載操作符(參數)

因爲頂層函數不在類中,其單目操作符的重載會傳入一個類對象參數,雙目的要傳入兩個,還有些因爲操作上的原因只能在類中進行重載,像[],(),->,=等。

例 TEST operator+(TEST& data1, TEST& data2);

 

操作符重載其實就是一個重載的函數,但是由於operator的作用可以書寫的時候更方便。

operator+(a,b)和a+b的效果是等價的。

 

關於在C++中可以重載的操作符有以下這些:

new new[] delete delete[]

+, -,*,/ , ^, &, |, ~, !, =, <, >, +=,-=, *=,/=,%=, ^=, &=, |= , <<, >>, <<=, >>=, ==, != , <=, >=, &&, ||, ++, --,  , , ->* -> , (), [] 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章