首頁考試吧論壇Exam8視線考試商城網(wǎng)絡(luò)課程模擬考試考友錄實(shí)用文檔求職招聘論文下載
2014中考
法律碩士
2014高考
MBA考試
2014考研
MPA考試
在職研
中科院
考研培訓(xùn) 自學(xué)考試 成人高考
四 六 級(jí)
GRE考試
攻碩英語
零起點(diǎn)日語
職稱英語
口譯筆譯
申碩英語
零起點(diǎn)韓語
商務(wù)英語
日語等級(jí)
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點(diǎn)英語
托?荚
托業(yè)考試
零起點(diǎn)法語
雅思考試
成人英語三級(jí)
零起點(diǎn)德語
等級(jí)考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱計(jì)算機(jī) 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報(bào) 關(guān) 員
外 銷 員
價(jià)格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報(bào)檢員
法律顧問
管理咨詢
企業(yè)培訓(xùn)
社會(huì)工作者
銀行從業(yè)
教師資格
營(yíng)養(yǎng)師
保險(xiǎn)從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國(guó)際商務(wù)
心理咨詢
營(yíng) 銷 師
司法考試
國(guó)際貨運(yùn)代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格
基金從業(yè)資格
統(tǒng)計(jì)從業(yè)資格
經(jīng)濟(jì)師
精算師
統(tǒng)計(jì)師
會(huì)計(jì)職稱
法律顧問
ACCA考試
注冊(cè)會(huì)計(jì)師
資產(chǎn)評(píng)估師
審計(jì)師考試
高級(jí)會(huì)計(jì)師
注冊(cè)稅務(wù)師
國(guó)際內(nèi)審師
理財(cái)規(guī)劃師
美國(guó)注冊(cè)會(huì)計(jì)師
一級(jí)建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價(jià)師
二級(jí)建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價(jià)工程師
注冊(cè)測(cè)繪師
質(zhì)量工程師
巖土工程師
造價(jià)員考試
注冊(cè)計(jì)量師
環(huán)保工程師
化工工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
監(jiān)理工程師
房地產(chǎn)估價(jià)
土地估價(jià)師
安全評(píng)價(jià)師
房地產(chǎn)經(jīng)紀(jì)人
投資項(xiàng)目管理師
環(huán)境影響評(píng)價(jià)師
土地登記代理人
繽紛校園 實(shí)用文檔 英語學(xué)習(xí) 作文大全 求職招聘 論文下載 訪談|游戲
計(jì)算機(jī)等級(jí)考試

2014年計(jì)算機(jī)二級(jí)C++考點(diǎn)歸納:運(yùn)算符重載

查看匯總:2014年計(jì)算機(jī)二級(jí)C++考點(diǎn)歸納

  8.1 運(yùn)算符函數(shù)據(jù)與運(yùn)算符重載

  運(yùn)算符重載是計(jì)算機(jī)語言固有多態(tài)性的體現(xiàn),是構(gòu)成計(jì)算機(jī)語言的基礎(chǔ)之一。

  C++把重載的運(yùn)算符視為特殊的函數(shù),稱為運(yùn)算符函數(shù)。運(yùn)算符重載就是函數(shù)重載的一種特殊情況。像對(duì)待一般重載函數(shù)一樣,編譯系統(tǒng)能夠依據(jù)使用運(yùn)算符的不同環(huán)境,即參數(shù)(操作數(shù))的數(shù)量或類型的差異,區(qū)分同一運(yùn)算符的不同含義。

  “運(yùn)算符重載”是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不可能通過重載創(chuàng)造出新的運(yùn)算符。除了.、.*、->*、::、?:這五個(gè)運(yùn)算符外,其他運(yùn)算符都可以重載。由于很多符號(hào)是一元運(yùn)算符和二元運(yùn)算符公用的,為了避免含混,不得為重載的運(yùn)算符函數(shù)設(shè)置默認(rèn)值,調(diào)用時(shí)也就不得省略實(shí)參。

  除了new和delete這兩個(gè)較為特殊運(yùn)算符以外,任何運(yùn)算符如果作為成員函數(shù)重載時(shí)不得重載為靜態(tài)函數(shù)。=、[ ]、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,而且不能是針對(duì)枚舉類型操作數(shù)的重載。

  運(yùn)算符函數(shù)的函數(shù)名是由運(yùn)算符前加關(guān)鍵字operator構(gòu)成的,在聲明運(yùn)算符或調(diào)用運(yùn)算符時(shí)都可以用這個(gè)名稱。

  8.2 典范運(yùn)算符的重載

  1關(guān)于分?jǐn)?shù)類fraction

  fraction的聲明和定義包含在頭文件fraction.h和程序文件fraction.cpp中。

  一個(gè)標(biāo)準(zhǔn)的用fraction表示的分?jǐn)?shù)須滿足以下復(fù)印件:

 、俜帜赣肋h(yuǎn)為正,分?jǐn)?shù)和符號(hào)用分子表示;

 、诜肿臃帜富ベ|(zhì),即總表示為最簡(jiǎn)分?jǐn)?shù)。

  fraction通過兩個(gè)私有數(shù)據(jù)成員num和den分別保存分子和分母,并在必要時(shí)調(diào)用standardize函數(shù)進(jìn)行標(biāo)準(zhǔn)化處理,以使num和den的值滿足標(biāo)準(zhǔn)分?jǐn)?shù)的條件。gcd是求兩個(gè)整數(shù)的最大公約數(shù)的函數(shù),standardize在化簡(jiǎn)分?jǐn)?shù)時(shí)要調(diào)用它。

  2重載取負(fù)運(yùn)算符“-”

  因?yàn)閒raction用分子的符號(hào)代表整個(gè)分?jǐn)?shù)的符號(hào),因此所謂“取負(fù)”只需對(duì)分子num取負(fù)就可以了。由于取負(fù)運(yùn)算符“-”是一元運(yùn)算符,當(dāng)作為成員函數(shù)重載時(shí)參數(shù)表中沒有參數(shù),那個(gè)唯一的操作數(shù)以this指針的形式隱藏在參數(shù)表中。為此,只需要在fraction.h的類聲明中增加:

  fraction poerator -()const { return fraction(-num,den);}

  就可以了。由于在類聲明中直接給出了完整定義,因此是一個(gè)inline函數(shù)。

  “-”是一個(gè)典型的一元運(yùn)算符,除++、--外的其他一元運(yùn)算符的重載都可以參考這里描述的方法。

  3重載加法運(yùn)算符“+”

  “ +”是一個(gè)二元運(yùn)算符,因此作為成員函數(shù)重載時(shí)參數(shù)表中只有一個(gè)參數(shù),對(duì)應(yīng)于第二操作數(shù),而第一操作數(shù)就是對(duì)象本身,僅以this指針的形式隱藏在參靈敏表中。

  “+”是一個(gè)典型的二元運(yùn)算符,除賦值類運(yùn)算符外的其他二元運(yùn)算符的重載都可以參考這里描述的方法。

1 2 3 4 下一頁

編輯推薦:

2014年上半年計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間預(yù)告

2014年計(jì)算機(jī)等級(jí)考試考試時(shí)間預(yù)測(cè)

2013年9月計(jì)算機(jī)等級(jí)考試成績(jī)查詢時(shí)間及方式預(yù)告

文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。