青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
數(shù)據(jù)加載中……

C++的運(yùn)算符重載之形式

C++中預(yù)定義的運(yùn)算符的操作對(duì)象只能是基本數(shù)據(jù)類型。但實(shí)際上,對(duì)于許多用戶自定義類型(例如類),也需要類似的運(yùn)算操作。這時(shí)就必須在C++中重新定義這些運(yùn)算符,賦予已有運(yùn)算符新的功能,使它能夠用于特定類型執(zhí)行特定的操作。運(yùn)算符重載的實(shí)質(zhì)是函數(shù)重載,它提供了C++的可擴(kuò)展性,也是C++最吸引人的特性之一。

運(yùn)算符重載是通過(guò)創(chuàng)建運(yùn)算符函數(shù)實(shí)現(xiàn)的,運(yùn)算符函數(shù)定義了重載的運(yùn)算符將要進(jìn)行的操作。運(yùn)算符函數(shù)的定義與其他函數(shù)的定義類似,惟一的區(qū)別是運(yùn)算符函數(shù)的函數(shù)名是由關(guān)鍵字operator和其后要重載的運(yùn)算符符號(hào)構(gòu)成的。運(yùn)算符函數(shù)定義的一般格式如下:

    <返回類型說(shuō)明符> operator <運(yùn)算符符號(hào)>(<參數(shù)表>)

    {

     <函數(shù)體>

    }

    運(yùn)算符重載時(shí)要遵循以下規(guī)則:

(1) 除了類屬關(guān)系運(yùn)算符"."、成員指針運(yùn)算符".*"、作用域運(yùn)算符"::"sizeof運(yùn)算符和三目運(yùn)算符"?:"以外,C++中的所有運(yùn)算符都可以重載。

(2) 重載運(yùn)算符限制在C++語(yǔ)言中已有的運(yùn)算符范圍內(nèi)的允許重載的運(yùn)算符之中,不能創(chuàng)建新的運(yùn)算符。

(3) 運(yùn)算符重載實(shí)質(zhì)上是函數(shù)重載,因此編譯程序?qū)\(yùn)算符重載的選擇,遵循函數(shù)重載的選擇原則。

(4) 重載之后的運(yùn)算符不能改變運(yùn)算符的優(yōu)先級(jí)和結(jié)合性,也不能改變運(yùn)算符操作數(shù)的個(gè)數(shù)及語(yǔ)法結(jié)構(gòu)。

(5) 運(yùn)算符重載不能改變?cè)撨\(yùn)算符用于內(nèi)部類型對(duì)象的含義。它只能和用戶自定義類型的對(duì)象一起使用,或者用于用戶自定義類型的對(duì)象和內(nèi)部類型的對(duì)象混合使用時(shí)。

(6) 運(yùn)算符重載是針對(duì)新類型數(shù)據(jù)的實(shí)際需要對(duì)原有運(yùn)算符進(jìn)行的適當(dāng)?shù)母脑欤剌d的功能應(yīng)當(dāng)與原有功能相類似,避免沒(méi)有目的地使用重載運(yùn)算符。

運(yùn)算符函數(shù)重載一般有兩種形式:重載為類的成員函數(shù)和重載為類的非成員函數(shù)。非成員函數(shù)通常是友元。(可以把一個(gè)運(yùn)算符作為一個(gè)非成員、非友元函數(shù)重載。但是,這樣的運(yùn)算符函數(shù)訪問(wèn)類的私有和保護(hù)成員時(shí),必須使用類的公有接口中提供的設(shè)置數(shù)據(jù)和讀取數(shù)據(jù)的函數(shù),調(diào)用這些函數(shù)時(shí)會(huì)降低性能。可以內(nèi)聯(lián)這些函數(shù)以提高性能。)  

成員函數(shù)運(yùn)算符

運(yùn)算符重載為類的成員函數(shù)的一般格式為:

    <函數(shù)類型> operator <運(yùn)算符>(<參數(shù)表>)

    {

     <函數(shù)體>

    }

當(dāng)運(yùn)算符重載為類的成員函數(shù)時(shí),函數(shù)的參數(shù)個(gè)數(shù)比原來(lái)的操作數(shù)要少一個(gè)(后置單目運(yùn)算符除外),這是因?yàn)槌蓡T函數(shù)用this指針隱式地訪問(wèn)了類的一個(gè)對(duì)象,它充當(dāng)了運(yùn)算符函數(shù)最左邊的操作數(shù)。因此:

(1) 雙目運(yùn)算符重載為類的成員函數(shù)時(shí),函數(shù)只顯式說(shuō)明一個(gè)參數(shù),該形參是運(yùn)算符的右操作數(shù)。

(2) 前置單目運(yùn)算符重載為類的成員函數(shù)時(shí),不需要顯式說(shuō)明參數(shù),即函數(shù)沒(méi)有形參。

(3) 后置單目運(yùn)算符重載為類的成員函數(shù)時(shí),函數(shù)要帶有一個(gè)整型形參。

    調(diào)用成員函數(shù)運(yùn)算符的格式如下:

    <對(duì)象名>.operator <運(yùn)算符>(<參數(shù)>)

    它等價(jià)于

    <對(duì)象名><運(yùn)算符><參數(shù)>

    例如:a+b等價(jià)于a.operator +(b)。一般情況下,我們采用運(yùn)算符的習(xí)慣表達(dá)方式。

友元函數(shù)運(yùn)算符

運(yùn)算符重載為類的友元函數(shù)的一般格式為:

    friend <函數(shù)類型> operator <運(yùn)算符>(<參數(shù)表>)

    {

     <函數(shù)體>

    }

當(dāng)運(yùn)算符重載為類的友元函數(shù)時(shí),由于沒(méi)有隱含的this指針,因此操作數(shù)的個(gè)數(shù)沒(méi)有變化,所有的操作數(shù)都必須通過(guò)函數(shù)的形參進(jìn)行傳遞,函數(shù)的參數(shù)與操作數(shù)自左至右一一對(duì)應(yīng)。

調(diào)用友元函數(shù)運(yùn)算符的格式如下:

    operator <運(yùn)算符>(<參數(shù)1>,<參數(shù)2>)

    它等價(jià)于

    <參數(shù)1><運(yùn)算符><參數(shù)2>

    例如:a+b等價(jià)于operator +(a,b)

兩種重載形式的比較

在多數(shù)情況下,將運(yùn)算符重載為類的成員函數(shù)和類的友元函數(shù)都是可以的。但成員函數(shù)運(yùn)算符與友元函數(shù)運(yùn)算符也具有各自的一些特點(diǎn):

(1) 一般情況下,單目運(yùn)算符最好重載為類的成員函數(shù);雙目運(yùn)算符則最好重載為類的友元函數(shù)。

(2) 以下一些雙目運(yùn)算符不能重載為類的友元函數(shù):=()[]->

(3) 類型轉(zhuǎn)換函數(shù)只能定義為一個(gè)類的成員函數(shù)而不能定義為類的友元函數(shù)。

(4) 若一個(gè)運(yùn)算符的操作需要修改對(duì)象的狀態(tài),選擇重載為成員函數(shù)較好。

(5) 若運(yùn)算符所需的操作數(shù)(尤其是第一個(gè)操作數(shù))希望有隱式類型轉(zhuǎn)換,則只能選用友元函數(shù)。

(6) 當(dāng)運(yùn)算符函數(shù)是一個(gè)成員函數(shù)時(shí),最左邊的操作數(shù)(或者只有最左邊的操作數(shù))必須是運(yùn)算符類的一個(gè)類對(duì)象(或者是對(duì)該類對(duì)象的引用)。如果左邊的操作數(shù)必須是一個(gè)不同類的對(duì)象,或者是一個(gè)內(nèi)部類型的對(duì)象,該運(yùn)算符函數(shù)必須作為一個(gè)友元函數(shù)來(lái)實(shí)現(xiàn)。

(7) 當(dāng)需要重載運(yùn)算符具有可交換性時(shí),選擇重載為友元函數(shù)。

 

posted on 2008-09-22 12:42 肥仔 閱讀(1053) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++ 基礎(chǔ)

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧洲综合| 免费在线成人| 久久免费精品视频| 欧美jizz19性欧美| 一区二区三区产品免费精品久久75| 久久国产主播精品| 国内激情久久| 国产欧美在线观看一区| 中文日韩电影网站| 国产一区二区电影在线观看 | 一区二区久久久久| 国产亚洲一区二区精品| 一本在线高清不卡dvd | 久久综合国产精品| 欧美国产精品va在线观看| 精品不卡一区二区三区| 亚洲第一色在线| 久久野战av| 欧美国产激情| 亚洲一区二区三区四区中文 | 久久网站热最新地址| 欧美伊人久久久久久久久影院| 久久欧美肥婆一二区| 欧美一区二区视频在线观看| 欧美成人激情视频| 欧美激情网站在线观看| 久久精品国产精品 | 欧美日韩在线一区二区| 麻豆成人综合网| 亚洲三级电影在线观看| 亚洲经典在线看| 午夜精品在线看| 欧美高清免费| 香蕉av福利精品导航| 亚洲人体偷拍| 欧美在线免费播放| 亚洲青色在线| 另类春色校园亚洲| 国产精品女主播| 亚洲一区二区四区| 国产午夜精品在线| 夜夜狂射影院欧美极品| 亚洲精选一区二区| 久久福利精品| 国产精品一区久久| 日韩视频在线观看免费| 国产精品一区二区在线观看| 裸体女人亚洲精品一区| 91久久午夜| 久久精品一区蜜桃臀影院| 夜夜嗨网站十八久久| 亚洲国产精品免费| 一区二区激情视频| 欧美日韩你懂的| 欧美—级a级欧美特级ar全黄| 亚洲欧美日韩国产中文在线| 麻豆国产精品777777在线| 亚洲天堂久久| 亚洲视频你懂的| 国产日韩欧美中文| 亚洲成人在线视频播放| 欧美大色视频| 欧美日韩另类视频| 欧美一级夜夜爽| 男女精品视频| 欧美一区二区三区免费观看| 亚洲一区二区av电影| 亚洲欧美在线免费| 久久综合中文| 欧美中文在线免费| 欧美激情中文不卡| 久久免费黄色| 欧美精品一区二区蜜臀亚洲| 亚洲高清不卡| 美女91精品| 国产精品久久久久影院亚瑟| 国产精品国色综合久久| 午夜精品久久| 亚洲中字黄色| 欧美日韩国产成人精品| 国产视频欧美视频| 一本久道久久综合狠狠爱| 久久久7777| 久久综合伊人77777| 国产精品自拍网站| 亚洲精品在线二区| 日韩亚洲精品视频| 欧美电影免费观看高清| 国模私拍一区二区三区| 夜夜嗨av一区二区三区免费区| 亚洲午夜影视影院在线观看| 久久综合久色欧美综合狠狠| 一本大道久久a久久精品综合| 免费日韩精品中文字幕视频在线| 欧美日韩国产一级片| 亚洲国产视频直播| 欧美成人精品在线观看| 亚洲欧洲在线一区| 欧美日韩在线另类| 欧美一区高清| aⅴ色国产欧美| 看欧美日韩国产| 午夜精品国产更新| 亚洲精品欧美日韩专区| 国产午夜精品一区理论片飘花 | 日韩视频免费看| 亚洲欧美日韩精品久久亚洲区 | 亚洲免费成人| 欧美成在线视频| 亚洲国产91| 亚洲一区一卡| 欧美专区在线观看| 日韩视频在线观看一区二区| 欧美精品久久久久a| 日韩亚洲不卡在线| 国产精品乱码久久久久久| 欧美成人精品在线| 一区二区三区欧美日韩| 久久在线免费| 一区二区三区四区在线| 日韩午夜视频在线观看| 亚洲色图自拍| 欧美黑人一区二区三区| 欧美精品免费播放| 亚洲综合国产激情另类一区| 国外成人在线视频| 国产精品国产三级国产专播品爱网| 欧美一区二区三区免费观看视频| 99re6热只有精品免费观看| 久久婷婷丁香| 亚洲国产三级在线| 黄色av日韩| 国产精品综合| 欧美精品色网| 国产精品mm| 国产精品视频成人| 亚洲视频欧美在线| 亚洲伦理在线观看| 欧美一级二区| 久久福利毛片| 免费在线视频一区| 欧美黑人在线播放| 欧美视频中文字幕| 国产午夜精品视频免费不卡69堂| 99视频国产精品免费观看| 亚洲黄页视频免费观看| 午夜视频一区| 久久男人资源视频| 欧美日韩国产va另类| 国产午夜久久久久| 久久久久久一区| 欧美激情免费在线| 精品99视频| 午夜精品视频在线观看| 国内成+人亚洲+欧美+综合在线| 亚洲欧美视频在线观看视频| 久久精品国产91精品亚洲| 国产精品日日摸夜夜摸av| 欧美国产日韩xxxxx| 欧美在线视频全部完| 在线电影一区| 欧美亚洲免费电影| 亚洲伦伦在线| 欧美精品久久久久久久免费观看| 一本久道久久综合狠狠爱| 久久精品国产免费看久久精品| 国产精品一区三区| 99视频精品全国免费| 在线观看三级视频欧美| 欧美日本精品| 亚洲电影第三页| 欧美成人福利视频| 欧美在线综合| 国产精品久久久久久久久久直播| 久久综合精品一区| 影音先锋另类| 美女福利精品视频| 欧美亚洲在线| 午夜在线成人av| 狠狠狠色丁香婷婷综合激情| 欧美午夜视频在线观看| 欧美激情国产精品| 日韩视频一区二区| 亚洲黄色在线| 国产欧美日韩不卡免费| 国产亚洲综合在线| 欧美不卡视频| 国产精品乱码人人做人人爱| 欧美偷拍另类| 亚洲综合丁香| 午夜精品福利一区二区三区av| 卡一卡二国产精品| 免费观看日韩av| 亚洲一区国产视频| 国产精品啊啊啊| 久久久久久久久久码影片| 亚洲国产精品一区二区尤物区| 亚洲大胆人体在线| 亚洲韩国青草视频| 久久综合图片|