- 相關(guān)推薦
全國計(jì)算機(jī)二級(jí)C++考試知識(shí)點(diǎn)
C++引入了面向?qū)ο蟮母拍睿沟瞄_發(fā)人機(jī)交互類型的應(yīng)用程序更為簡單、快捷。下面是yjbys小編收集的全國計(jì)算機(jī)二級(jí)C++考試知識(shí)點(diǎn),希望大家認(rèn)真閱讀!
運(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è)名稱。
典范運(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ì),即總表示為最簡分?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在化簡分?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的類聲明中增加:
fractionpoerator-()const{returnfraction(-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)算符的重載都可以參考這里描述的方法。
【全國計(jì)算機(jī)二級(jí)C++考試知識(shí)點(diǎn)】相關(guān)文章:
2017全國計(jì)算機(jī)二級(jí)C++考試試題06-20
計(jì)算機(jī)二級(jí)考試之C++基礎(chǔ)知識(shí)點(diǎn)08-05
計(jì)算機(jī)二級(jí)考試C++試題及答案08-01
計(jì)算機(jī)二級(jí)考試C++試題及答案10-08
計(jì)算機(jī)二級(jí)c++主要考試內(nèi)容09-25
2017計(jì)算機(jī)二級(jí)C++考試試題10-20
2017年全國計(jì)算機(jī)二級(jí)考試考試知識(shí)點(diǎn)積累10-08