cpp 復合型別 函式 運算子過載

2021-07-27 22:53:02 字數 1366 閱讀 8757

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 成員運算子過載函式也可以在類中宣告成員函式的原型,在類...