c++運算符重載的規則是什么
小億
83
2024-01-19 15:43:17
C++運算符重載的規則如下:
- 不能重定義原有的運算符的優先級和結合性。
- 不能重載以下運算符:
::
(作用域解析運算符)、.
(成員選擇運算符)、.*
(成員指針選擇運算符)、?:
(條件運算符)和sizeof
(sizeof運算符)。
- 不能重載以下運算符的含義:
&&
(邏輯與)、||
(邏輯或)和,
(逗號)。
- 重載運算符必須至少有一個操作數是用戶定義的類型,不能改變運算符的操作數數量。
- 重載運算符可以是成員函數或非成員函數,但是如果是非成員函數,至少有一個操作數必須是用戶定義的類型。
- 如果重載為成員函數,則操作數數目減一,如果重載為非成員函數,則操作數數目不變。
- 不能修改運算符的操作數的語義。
- 重載為非成員函數時,參數個數應該與該運算符在所有操作數上的操作數個數相等,如果是成員函數,則參數個數比該運算符在所有操作數上的操作數個數少一個。
- 重載運算符不能改變其優先級和結合性。
- 重載的運算符必須保留其原始的基本意義,不應該對其進行過度的重載以避免造成困惑和不必要的復雜性。
普格县|
喀什市|
蚌埠市|
依兰县|
道孚县|
龙门县|
龙岩市|
五大连池市|
阜城县|
台州市|
北票市|
元阳县|
清苑县|
读书|
得荣县|
包头市|
大新县|
武穴市|
霍城县|
鲁山县|
西昌市|
万源市|
贺州市|
且末县|
扎鲁特旗|
华宁县|
长顺县|
平乐县|
屏东市|
旬阳县|
会理县|
宜黄县|
兰西县|
额尔古纳市|
赤城县|
治多县|
上犹县|
宁晋县|
苍山县|
毕节市|
盘锦市|