c++引入運算子過載機制目的為了類型別(列舉型別)模仿內建型別運算子操作,因此運算子過載必須確保至少乙個引數為類型別(列舉型別),且必須是物件形式,而非指標(引用)形式:
enum epoint5
;epoint5 operator+(epoint5 point1, int point2)
return zero;
}epoint5 operator+(int point1, epoint5 point2)
return zero;
}epoint5 operator+(epoint5 point1, epoint5 point2)
return zero;
}void enum_op_overload()
output:
operator+(epoint5, int) = 1
operator+(epoint5, int) = 4
operator+(int, epoint5) = 1
operator+(epoint5, int) = 4
operator+(epoint, epoint5) = 1
operator+(epoint5, int) = 1
operator+(int, epoint5) = 1
operator+(epoint, epoint5) = 1
class cpoint
public:
int mpoint;
};cpoint operator+(cpoint point1, int point2)
cpoint operator+(int point1, cpoint point2)
cpoint operator+(cpoint point1, cpoint point2)
void class_op_overload()
output:
operator+(cpoint, int) = 1
operator+(cpoint, int) = 4
operator+(int, cpoint) = 1
operator+(cpoint, int) = 4
operator+(cpoint, cpoint) = 1
operator+(cpoint, int) = 1
operator+(int, cpoint) = 1
operator+(cpoint, cpoint) = 1
支援過載的運算子:
算術操作符:+,-,*,/,%
復合算術操作符:
位操作符
復合
運算子過載之過載型別運算子
普通型別 類型別 呼叫對應的只有乙個引數 引數的型別就是這個普通型別 的建構函式 需求 boy boy1 10000 薪資 建構函式boy int boy boy2 rock 姓名 建構函式boy char 普通型別賦值給類型別其實很簡單,就是專門的對這個賦值的型別定義乙個建構函式。編譯器在執行 的...
運算子函式過載
1.運算子的本質是什麼?把運算子看作函式名,通過函式過載的方式為同乙個運算子實現不同規則的運算,故運算子過載的本質就是函式過載。2.怎樣進行運算子過載?運算子過載的函式名是由關鍵字operate和其後重要的運算子符號構成。運算子函式定義的一般格式如下 資料型別 operate 運算子符號 引數列表 ...
C 運算子過載函式之成員運算子過載函式
5.2.3 成員運算子過載函式 在c 中可以把運算子過載函式定義為某個類的成員函式,稱之為成員運算子過載函式。1.定義成員運算子過載函式的語法形式 1 在類的內部,定義成員運算子過載函式的格式如下 函式型別 operator 運算子 形參表 2 成員運算子過載函式也可以在類中宣告成員函式的原型,在類...