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

        c++中不能重載的運算符有哪些

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

        c++中不能重載的運算符有哪些

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

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

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

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

        exp1 ? exp2 : exp3

        該運算符的含義是執(zhí)行exp2和exp3中的一個,假設(shè)重載了,就不可以保證執(zhí)行一個還是兩個,還是都沒執(zhí)行,該運算符的跳轉(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ù)了。
        “.”運算符的含義是引用對象成員,然而被重載后就不能保證了,導(dǎo)致運算符意義的混淆。

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

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

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

        擴展資料:

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

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 亚洲精品国产电影| 国产精品VA在线观看无码不卡 | 国内精品一级毛片免费看| 日韩精品一区二区三区在线观看| 久久精品国产只有精品2020| 日韩精品无码一区二区中文字幕| 精品精品国产理论在线观看| 四虎4hu永久免费国产精品| 成人午夜精品网站在线观看| 久久久精品国产sm调教网站| 色婷婷噜噜久久国产精品12p| 国产乱子伦精品无码专区| 久久这里只有精品首页| 国产成人精品日本亚洲网站 | 精品国产一区二区三区在线观看| 思思99热在线观看精品| 国产精品1区2区3区在线播放| 久久99精品久久只有精品 | 国产欧美日韩综合精品一区二区三区 | 人人妻人人澡人人爽欧美精品| 欧美日韩成人精品久久久免费看| 国产精品推荐天天看天天爽| 91麻豆精品一二三区在线| 久久精品国产久精国产| 精品久久久久久亚洲| 国产精品高清一区二区人妖| 囯产精品一品二区三区| 国产精品美女一区二区视频| 国产午夜精品无码| 国产精品成人观看视频国产奇米| 国产麻豆精品一区二区三区v视界| 精品视频一区二区三三区四区| 无码国产精品一区二区免费16 | 亚洲中文久久精品无码ww16 | 精品欧美一区二区在线观看| 精品少妇一区二区三区在线| 久久中文精品无码中文字幕| 亚洲精品高清在线| 亚洲国产精品久久电影欧美| 精品久久久久久无码专区不卡 | 亚洲av永久无码精品古装片|