国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C++重載運算符的規則詳解

C++重載運算符的規則詳解

2021-01-07 14:29C++教程網 C/C++

運算符重載函數可以是類的成員函數,也可以是類的友元函數,還可以是既非類的成員函數也不是友元函數的普通函數

(1)C++不允許用戶自己定義新的運算符,只能對已有的C++運算符進行重載。
例如,有人覺得BASIC中用“* *”作為冪運算符很方便,也想在C++中將“* *”定義為冪運算符,用“3* *5”表示35,這是不行的。

(2)C++允許重載的運算符
C++中絕大部分運算符都是可以被重載的。

不能重載的運算符只有5個:

.             (成員訪問運算符)

.*            (成員指針訪問運算符)

::             (域運算符)

sizeof    (長度運算符)

?:            (條件運算符)

前兩個運算符不能重載是為了保證訪問成員的功能不能被改變,域運算符合sizeof運算符的運算對象是類型而不是變量或一般表達式,不具備重載的特征。

(3)重載不能改變運算符運算對象(即操作數)的個數。
如,關系運算符“>”和“<”等是雙目運算符,重載后仍為雙目運算符,需要兩個參數。運算符”+“,”-“,”*“,”&“等既可以作為單目運算符,也可以作為雙目運算符,可以分別將它們重載為單目運算符或雙目運算符。

(4)重載不能改變運算符的優先級別。
例如”*“和”/“優先級高于”+“和”-“,不論怎樣進行重載,各運算符之間的優先級不會改變。有時在程序中希望改變某運算符的優先級,也只能使用加括號的方法強制改變重載運算符的運算順序。

(5)重載不能改變運算符的結合性。
如,復制運算符”=“是右結合性(自右至左),重載后仍為右結合性。

(6)重載運算符的函數不能有默認的參數
否則就改變了運算符參數的個數,與前面第(3)點矛盾。

(7)重載的運算符必須和用戶定義的自定義類型的對象一起使用,其參數至少應有一個是類對象(或類對象的引用)。
也就是說,參數不能全部是C++的標準類型,以防止用戶修改用于標準類型數據成員的運算符的性質,如下面這樣是不對的:

復制代碼 代碼如下:

int operator + (int a,int b)
{
        return(a-b);
}


原來運算符+的作用是對兩個數相加,現在企圖通過重載使它的作用改為兩個數相減。

 

如果允許這樣重載的話,如果有表達式4+3,它的結果是7還是1呢?顯然,這是絕對要禁止的。

(8)用于類對象的運算符一般必須重載,但有兩個例外,運算符”=“和運算符”&“不必用戶重載。
復制運算符”=“可以用于每一個類對象,可以用它在同類對象之間相互賦值。因為系統已為每一個新聲明的類重載了一個賦值運算符,它的作用是逐個復制類中的數據成員

地址運算符&也不必重載,它能返回類對象在內存中的起始地址。

(9)應當使重載運算符的功能類似于該運算符作用于標準類型數據時候時所實現的功能。
例如,我們會去重載”+“以實現對象的相加,而不會去重載”+“以實現對象相減的功能,因為這樣不符合我們對”+“原來的認知。

(10)運算符重載函數可以是類的成員函數,也可以是類的友元函數,還可以是既非類的成員函數也不是友元函數的普通函數。

延伸 · 閱讀

精彩推薦
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
主站蜘蛛池模板: 成人男女啪啪免费观软件 | 一区二区三区精品 | 亚洲一区二区三区视频 | 国产精品久久久久久久久久ktv | 男人的天堂在线视频 | 精品日韩一区二区三区 | 国产精品久久久久白丝呻吟 | 免费视频黄| 亚洲欧美激情精品一区二区 | 97色伦97色伦国产欧美空 | 黑人精品 | 日韩精品一区二区三区在线 | 免费成人在线观看视频 | 日韩成人免费电影 | 在线中文字幕视频 | 男女视频网址 | 亚洲精品一区 | 亚洲福利一区二区 | 在线观看亚洲视频 | 国产精品福利在线 | 日韩欧美一级精品久久 | 亚洲 欧美 自拍偷拍 | 青青操天天干 | 羞羞在线观看 | 日本在线中文 | 性色av一区二区三区红粉影视 | 玖玖视频 | 国产综合精品一区二区三区 | 国变精品美女久久久久av爽 | 久久综合久久久 | av大片在线观看 | 色精品 | 日韩欧美一区二区三区 | 欧美一区二区三区在线视频观看 | 午夜电影在线看 | 中文字幕久久久 | 免费视频一区二区 | 99精品久久 | 精品免费久久久久久久苍 | 亚洲精品国产第一综合99久久 | 亚洲精品视频免费 |