運算子過載

2021-10-09 23:01:33 字數 1137 閱讀 7559

operatorop()

op必須為有效的c++運算子

1.成員函式過載運算子

2.全域性函式過載運算子

3.運算子過載也可實現函式過載

一、加號運算子過載

class

person

int m_a;

int m_b;};

//2.全域性函式過載+號

person operator

+(person& p1, person& p2)

//3.運算子過載也可實現函式過載

person operator

+(person &p1,

int num)

void

fun(

)

對於內建的資料型別的表示式的運算子是不可能改變的

如:+號不能實現相減運算

二、遞增運算子過載

前置遞增

//前置++

//返回引用是為了對同乙個資料進行遞增操作

number&

operator++(

)

使用引用能實現二次過載遞增,也就是cout<<++(++num)<

後置遞增

//後置++

//使用佔位函式int讓編譯器知道這是函式過載,區分前置後置

number operator++(

int)

臨時物件temp屬於區域性物件,在函式實現完成後,系統會自動清空資料,若返回引用就屬於非法操作

三、函式呼叫運算子過載

class

print};

void

myprint2

(string text)

void

fun(

)

仿函式(functor),是通過過載()運算子模擬函式形為的類

class

add}

;void

fun2()

匿名物件只存在於構造該物件的那行**,離開構造匿名物件的那行**後立即呼叫析構函式

運算子過載之過載型別運算子

普通型別 類型別 呼叫對應的只有乙個引數 引數的型別就是這個普通型別 的建構函式 需求 boy boy1 10000 薪資 建構函式boy int boy boy2 rock 姓名 建構函式boy char 普通型別賦值給類型別其實很簡單,就是專門的對這個賦值的型別定義乙個建構函式。編譯器在執行 的...

運算子過載 賦值運算子的過載

有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個int型別變數賦值給乙個complex物件,或把乙個 char 型別的字串賦值給乙個字串物件,此時就需要過載賦值運算子 注意 賦值運算子 只能過載為成員函式 賦值運算子過載例項示例 include include using namespace ...

運算子過載

c 中的運算子 1。大多數系統預定義運算子都能過載 不值得過載 不能被過載 2過載不能改變優先順序 不能改變結合性 不能改變運算子所需運算元的個數 過載後,可按這些運算子的表達方式使用 運算子過載的語法 一 通過運算子過載函式進行過載 1。運算子過載函式是成員函式 語法形式 type x opera...