欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++運(yùn)算符重載限制介紹

 更新時(shí)間:2022年01月03日 12:00:13   作者:?梁唐?  
這篇文章主要介紹了C++運(yùn)算符重載限制,關(guān)于運(yùn)算符的重載并不是隨心所欲的。C++給出了一些限制,從而保證了規(guī)范,以及程序運(yùn)行的準(zhǔn)確性,下面來(lái)了解C++運(yùn)算符重載限制的詳細(xì)內(nèi)容吧,需要的朋友也可以參考一下

 文章轉(zhuǎn)自公眾號(hào):Coder梁(ID:Coder_LT)

一、重載限制

上一篇我們講了在類(lèi)和結(jié)構(gòu)體當(dāng)中重載運(yùn)算符,關(guān)于運(yùn)算符的重載并不是隨心所欲的。C++給出了一些限制,從而保證了規(guī)范,以及程序運(yùn)行的準(zhǔn)確性。

下面我們就來(lái)一一來(lái)看下:

1.必須至少有一個(gè)操作數(shù)是用戶(hù)定義的類(lèi)型

這句話(huà)看不明白沒(méi)有關(guān)系,我們只需要記住它的目的就好了。它的主要目的是為了防止用戶(hù)為了標(biāo)準(zhǔn)類(lèi)型重載運(yùn)算符。比如將+重載成兩個(gè)數(shù)的差,而不是和。

這種限制對(duì)創(chuàng)造性有一定的影響,沒(méi)有那么靈活,但可以保證程序的正常運(yùn)行。不會(huì)出現(xiàn)一些反人類(lèi)的情況

2.不能違反運(yùn)算符原來(lái)的規(guī)則

這一點(diǎn)很好理解,比如+號(hào),它的運(yùn)算就是計(jì)算兩個(gè)數(shù)的和。需要有兩個(gè)操作數(shù),現(xiàn)在我們把它重載成一個(gè)操作數(shù),就是違法的。

P p;
+p;

同樣,我們也不能修改運(yùn)算符的優(yōu)先級(jí),如果將加號(hào)運(yùn)算符重載成兩個(gè)類(lèi)相加,那么新的運(yùn)算符和原來(lái)的加號(hào)擁有一樣的優(yōu)先級(jí)。

3.不能創(chuàng)建新運(yùn)算符

這一點(diǎn)之前已經(jīng)說(shuō)過(guò)了,比如不能定義operator @等這種原來(lái)沒(méi)有的運(yùn)算符。

4.禁止名單

有一些運(yùn)算符是禁止重載的,如:sizeof, ., ::, ?:, typeid, const_cast, dynamic_cast, reinterpret_cast, static_cast

這些運(yùn)算符往往都有特殊的功能,直接從實(shí)現(xiàn)層面禁止重載。

5.部分運(yùn)算符只能通過(guò)成員函數(shù)重載

大多數(shù)運(yùn)算符都可以通過(guò)成員函數(shù)以及非成員函數(shù)進(jìn)行重載,但也有部分例外,只能通過(guò)成員函數(shù)重載,

如:

  • =:賦值運(yùn)算符
  • (): 函數(shù)調(diào)用運(yùn)算符
  • []: 下標(biāo)運(yùn)算符
  • ->: 箭頭符號(hào)

這里的非成員函數(shù)看起來(lái)有些費(fèi)解,之后我們會(huì)遇到,主要是指友元函數(shù)。

到此這篇關(guān)于C++運(yùn)算符重載限制介紹的文章就介紹到這了,更多相關(guān)C++運(yùn)算符重載限制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Qt實(shí)現(xiàn)矩形大小任意縮放的示例代碼

    Qt實(shí)現(xiàn)矩形大小任意縮放的示例代碼

    這篇文章主要介紹了Qt如何實(shí)現(xiàn)在窗口上繪制任意大小的矩形,并且通過(guò)邊角的拖曳按鈕可改變矩形大小,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-06-06
  • c++程序字符型的實(shí)例講解

    c++程序字符型的實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于
    2020-02-02
  • C++枚舉類(lèi)型enum與enum class的使用

    C++枚舉類(lèi)型enum與enum class的使用

    這篇文章主要介紹了C++枚舉類(lèi)型enum與enum class的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • C++ Qt開(kāi)發(fā)之使用QHostInfo查詢(xún)主機(jī)地址

    C++ Qt開(kāi)發(fā)之使用QHostInfo查詢(xún)主機(jī)地址

    Qt 是一個(gè)跨平臺(tái)C++圖形界面開(kāi)發(fā)庫(kù),利用Qt可以快速開(kāi)發(fā)跨平臺(tái)窗體應(yīng)用程序,本文將重點(diǎn)介紹如何運(yùn)用QHostInfo組件實(shí)現(xiàn)對(duì)主機(jī)地址查詢(xún)功能,希望對(duì)大家有所幫助
    2024-03-03
  • 簡(jiǎn)要介紹C++編程中的友元函數(shù)和友元類(lèi)

    簡(jiǎn)要介紹C++編程中的友元函數(shù)和友元類(lèi)

    這篇文章主要介紹了C++編程中的友元函數(shù)和友元類(lèi),屬于較為冷僻的知識(shí),在實(shí)際開(kāi)發(fā)中較少使用,需要的朋友可以參考下
    2015-09-09
  • C語(yǔ)言實(shí)現(xiàn)的一個(gè)三子棋游戲詳解流程

    C語(yǔ)言實(shí)現(xiàn)的一個(gè)三子棋游戲詳解流程

    三子棋是一種民間傳統(tǒng)游戲,又叫九宮棋、圈圈叉叉、一條龍、井字棋等。將正方形對(duì)角線(xiàn)連起來(lái),相對(duì)兩邊依次擺上三個(gè)雙方棋子,只要將自己的三個(gè)棋子走成一條線(xiàn),對(duì)方就算輸了
    2021-10-10
  • C語(yǔ)言中使用qsort函數(shù)對(duì)自定義結(jié)構(gòu)體數(shù)組進(jìn)行排序

    C語(yǔ)言中使用qsort函數(shù)對(duì)自定義結(jié)構(gòu)體數(shù)組進(jìn)行排序

    這篇文章主要介紹了C語(yǔ)言中使用qsort函數(shù)對(duì)自定義結(jié)構(gòu)體數(shù)組進(jìn)行排序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 適合新手小白DEV?C++的使用方法

    適合新手小白DEV?C++的使用方法

    Dev-C++是一個(gè)Windows環(huán)境下C/C++的集成開(kāi)發(fā)環(huán)境(IDE),它是一款自由軟件,遵守GPL,下面這篇文章主要給大家介紹了關(guān)于適合新手小白DEV?C++的使用方法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • visual studio code 編譯運(yùn)行html css js文件的教程

    visual studio code 編譯運(yùn)行html css js文件的教程

    這篇文章主要介紹了visual studio code 如何編譯運(yùn)行html css js文件,本文通過(guò)圖文實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • C++將音頻PCM數(shù)據(jù)封裝成wav文件的方法

    C++將音頻PCM數(shù)據(jù)封裝成wav文件的方法

    這篇文章主要為大家詳細(xì)介紹了C++將音頻PCM數(shù)據(jù)封裝成wav文件的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評(píng)論