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...