站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        c++中不能重載的運(yùn)算符有哪些

        c++中不能重載的運(yùn)算符有5個:“?:”、“.”、“::”、“sizeof”、“.*” 。 “.”和“::”運(yùn)算符如果重載,可能會出現(xiàn)混淆;“sizeof”運(yùn)算符不能重載是因?yàn)閮?nèi)部許多指針都依賴它;“.*”運(yùn)算符引用指向類成員的指針。

        c++中不能重載的運(yùn)算符有哪些

        本教程操作環(huán)境:windows7系統(tǒng)、C++17版本、Dell G3電腦。

        C++中不能重載的運(yùn)算符有5個,分別為:“?:” “.” “::” “sizeof” “.*” 。
        重載:讓操作符可以有新的語義,而不是更改語法,否則會引起混亂。
        重載的部分規(guī)則:運(yùn)算函數(shù)的參數(shù)至少有一個必須是類的對象或者是類的對象的引用。

        下面來解釋一下為什么這幾個運(yùn)算符不能進(jìn)行重載。

        (1)?:
        假設(shè)可以重載,那么我們來看下列的代碼:

        exp1 ? exp2 : exp3

        該運(yùn)算符的含義是執(zhí)行exp2和exp3中的一個,假設(shè)重載了,就不可以保證執(zhí)行一個還是兩個,還是都沒執(zhí)行,該運(yùn)算符的跳轉(zhuǎn)性質(zhì)就不復(fù)存在了。所以,“?:”不能被重載。

        (2).
        假設(shè)可以重載,我們可以假設(shè)一種情況,創(chuàng)建一個對象,調(diào)用該對象的函數(shù)。

        class Y{    public:       void fun(); }; class X{    public:       Y* p;       Y& operator.(){           return *p;       }       void fun(); } void g(X& x){       x.fun(); }

        這個例子中,x.fun()就不知道是調(diào)用哪一個fun函數(shù)了。
        “.”運(yùn)算符的含義是引用對象成員,然而被重載后就不能保證了,導(dǎo)致運(yùn)算符意義的混淆。

        (3)::
        該運(yùn)算符只是在編譯的時候域解析,而沒有運(yùn)算參與。根據(jù)重載的規(guī)則,如果重載該運(yùn)算符,就賦予了新的語義,可能會出現(xiàn)混淆。

        (4)sizeof
        不能被重載的原因主要是內(nèi)部許多指針都依賴sizeof。

        (5).*
        引用指向類成員的指針

        擴(kuò)展資料:

        重載運(yùn)算符遵守的原則:
        1. 被重載的操作符不可以通過連接其他符號來創(chuàng)建新的操作符。
        2. 重載操作符必須有一個類類型或者枚舉類型的操作數(shù)。
        3. 內(nèi)置類型的操作符,含義不能改變,如整數(shù)加法(+)。
        4. 重載后的運(yùn)算符不可以保證操作符的順序。
        5. 類成員的重載函數(shù),其形參隱含一個默認(rèn)的this指針。
        6. 一般將賦值運(yùn)算符定義為成員函數(shù),將算數(shù)運(yùn)算符定義為非成員函數(shù)。
        7. 操作符定義為非類的成員函數(shù)時,一般將其定義為類的友元。
        8. == 與 != 要成對出現(xiàn)。
        9. 下標(biāo)運(yùn)算符[]:一個非const成員并返回引用,一個是const成員并返回引用。
        10. * 與 -> 操作符,不顯示任何參數(shù)。
        11. 前置 ++/– 必須返回被增量或者減量的引用。
        12. 輸入操作符和輸出操作符必須定義為類的友元函數(shù)。

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 久久精品国产WWW456C0M| 亚洲精品午夜国产VA久久成人| 欧美精品免费专区在线观看| 国产精品国产三级专区第1集| 无码国模国产在线无码精品国产自在久国产 | 91精品国产高清久久久久久国产嫩草 | 精品国偷自产在线| 日本精品一区二区久久久| 2022精品国偷自产免费观看| 成人区人妻精品一区二区不卡视频 | 少妇人妻偷人精品免费视频| 久久精品国产一区二区三区| 国产vA免费精品高清在线观看| 99久久成人国产精品免费| 久久精品国产亚洲AV电影| 中文字幕久久精品| 手机日韩精品视频在线看网站| 精品国精品国产自在久国产应用男| 亚洲国产精品第一区二区| 久热这里只精品99re8久| 国产精品福利在线播放| 国产精品拍天天在线| 国产午夜精品久久久久免费视| 日产精品一线二线三线芒果| 久99精品视频在线观看婷亚洲片国产一区一级在线| 精品国产污污免费网站入口在线| 国产成人精品在线观看| 99久久国产综合精品成人影院| 九九99精品久久久久久| 国产精品久久久久久搜索| 99re6在线精品免费观看| 8AV国产精品爽爽ⅴa在线观看| 99re热视频这里只精品| 91精品欧美综合在线观看| 2022国内精品免费福利视频 | 欧美日韩精品一区二区三区不卡 | 麻豆国产在线精品国偷产拍 | 精品亚洲欧美中文字幕在线看| 久草热8精品视频在线观看| 久久精品国产WWW456C0M| 男女男精品视频网站在线观看|