雙目運算子的過載

2021-09-12 07:55:02 字數 1026 閱讀 5548

#includeclass ccomplex

void print()

ccomplex operator + (ccomplex &c); // 過載運算子+

ccomplex operator + (double r); // 過載運算子+

private: double realpart; // 複數的實部

double imagepart; // 複數的虛部

}; ccomplex ccomplex::operator + (ccomplex &c) // 引數是ccomplex引用物件,兩個複數的加法

ccomplex ccomplex::operator + (double r) // 引數是double型別資料,乙個複數與乙個實數的加法

void main() /*

執行結果為:

該複數實部 = 62, 虛部 = 90

該複數實部 = 32, 虛部 = 20

對運算子「+」作了兩次過載,乙個用於實現兩個複數的加法,另乙個用於實現乙個複數與乙個實數的加法。

當過載乙個運算子時,必須定義該運算子要完成的具體操作,而且當運算子過載函式是類的成員函式時,

該函式的形參個數要比運算子 運算元個數少乙個,雙目運算子過載的成員函式只有乙個引數,

單目運算子過載的成員函式沒有引數。

友元過載的一般格式如下:

friend 《函式型別》operator 《過載的運算子》(《形參》) // 單目運算子過載

// 函式體

friend 《函式型別》operator 《過載的運算子》(《形參1, 形數2>) // 雙目運算子過載

// 函式體

對於單目運算子的友元過載函式,只有乙個形參,形參型別可以是類的物件,可以是引用,這取決於不同的運算子。

對於雙目運算子的友元過載函式來說,它有兩個形參,這兩個形參中必須有乙個是類的物件。

需要說明的是,=、()、和->運算子不能用友元來過載。*/

乙個雙目運算子作為類的成員函式過載時,過載函式的參數列中有()個引數。

過載雙目運算子

include include using namespace std class string 定義預設建構函式 string char str 建構函式過載 friend bool operator string string1,string string2 friend bool operat...

中雙目運算子 運算子過載

這節講c 中的運算子過載。方法有過載,運算子也有過載,設想一下,我們用加號計算int型別的資料,返回的也是int型別,這很正常,因為在數學中加號就是用來計算數字的。但是當我們用加號計算兩個string型別的資料時,給我們返回的則是兩個string資料連線在一起,難道加號應用於不同的場景,編譯器就會自...

過載雙目運算子和過載單目運算子

new 和delete是單目運算子。strcmp函式將兩個字串進行比較,相等返回0 小於返回負數 大於返回正數。strcpy的用法 函式原型 char strcpy char est.const char src 功能是從src位址開始且含有null結束符的字串複製到以dest位址開始的字串中,並返...