c++運算符重載的規則是什么
小億
83
2024-01-19 15:43:17
C++運算符重載的規則如下:
- 不能重定義原有的運算符的優先級和結合性。
- 不能重載以下運算符:
::
(作用域解析運算符)、.
(成員選擇運算符)、.*
(成員指針選擇運算符)、?:
(條件運算符)和sizeof
(sizeof運算符)。
- 不能重載以下運算符的含義:
&&
(邏輯與)、||
(邏輯或)和,
(逗號)。
- 重載運算符必須至少有一個操作數是用戶定義的類型,不能改變運算符的操作數數量。
- 重載運算符可以是成員函數或非成員函數,但是如果是非成員函數,至少有一個操作數必須是用戶定義的類型。
- 如果重載為成員函數,則操作數數目減一,如果重載為非成員函數,則操作數數目不變。
- 不能修改運算符的操作數的語義。
- 重載為非成員函數時,參數個數應該與該運算符在所有操作數上的操作數個數相等,如果是成員函數,則參數個數比該運算符在所有操作數上的操作數個數少一個。
- 重載運算符不能改變其優先級和結合性。
- 重載的運算符必須保留其原始的基本意義,不應該對其進行過度的重載以避免造成困惑和不必要的復雜性。
博客|
于都县|
开封县|
鄂伦春自治旗|
海宁市|
文成县|
都安|
保康县|
尤溪县|
呼玛县|
翁牛特旗|
仲巴县|
惠安县|
万盛区|
商丘市|
会理县|
洛浦县|
靖宇县|
临朐县|
天水市|
潮安县|
岑巩县|
曲松县|
靖边县|
阿克|
桃园市|
馆陶县|
建瓯市|
星子县|
崇左市|
象州县|
井冈山市|
平定县|
竹北市|
偃师市|
阿坝|
兰州市|
临高县|
洪洞县|
灵宝市|
江孜县|