- 相關(guān)推薦
全國計算機二級C++考試知識點(diǎn)
C++引入了面向對象的概念,使得開(kāi)發(fā)人機交互類(lèi)型的應用程序更為簡(jiǎn)單、快捷。下面是yjbys小編收集的全國計算機二級C++考試知識點(diǎn),希望大家認真閱讀!
運算符函數據與運算符重載
運算符重載是計算機語(yǔ)言固有多態(tài)性的體現,是構成計算機語(yǔ)言的基礎之一。
C++把重載的運算符視為特殊的函數,稱(chēng)為運算符函數。運算符重載就是函數重載的一種特殊情況。像對待一般重載函數一樣,編譯系統能夠依據使用運算符的不同環(huán)境,即參數(操作數)的數量或類(lèi)型的差異,區分同一運算符的不同含義。
“運算符重載”是針對C++中原有運算符進(jìn)行的,不可能通過(guò)重載創(chuàng )造出新的運算符。除了.、.*、->*、::、?:這五個(gè)運算符外,其他運算符都可以重載。由于很多符號是一元運算符和二元運算符公用的,為了避免含混,不得為重載的運算符函數設置默認值,調用時(shí)也就不得省略實(shí)參。
除了new和delete這兩個(gè)較為特殊運算符以外,任何運算符如果作為成員函數重載時(shí)不得重載為靜態(tài)函數。=、[]、()、->以及所有的類(lèi)型轉換運算符只能作為成員函數重載,而且不能是針對枚舉類(lèi)型操作數的重載。
運算符函數的函數名是由運算符前加關(guān)鍵字operator構成的,在聲明運算符或調用運算符時(shí)都可以用這個(gè)名稱(chēng)。
典范運算符的重載
1?關(guān)于分數類(lèi)fraction
fraction的聲明和定義包含在頭文件fraction.h和程序文件fraction.cpp中。
一個(gè)標準的用fraction表示的分數須滿(mǎn)足以下復印件:
、俜帜赣肋h為正,分數和符號用分子表示;
、诜肿臃帜富ベ|(zhì),即總表示為最簡(jiǎn)分數。
fraction通過(guò)兩個(gè)私有數據成員num和den分別保存分子和分母,并在必要時(shí)調用standardize函數進(jìn)行標準化處理,以使num和den的值滿(mǎn)足標準分數的條件。gcd是求兩個(gè)整數的最大公約數的函數,standardize在化簡(jiǎn)分數時(shí)要調用它。
2?重載取負運算符“-”
因為fraction用分子的符號代表整個(gè)分數的符號,因此所謂“取負”只需對分子num取負就可以了。由于取負運算符“-”是一元運算符,當作為成員函數重載時(shí)參數表中沒(méi)有參數,那個(gè)唯一的操作數以this指針的形式隱藏在參數表中。為此,只需要在fraction.h的類(lèi)聲明中增加:
fractionpoerator-()const{returnfraction(-num,den);}
就可以了。由于在類(lèi)聲明中直接給出了完整定義,因此是一個(gè)inline函數。
“-”是一個(gè)典型的一元運算符,除++、--外的其他一元運算符的重載都可以參考這里描述的方法。
3?重載加法運算符“+”
“+”是一個(gè)二元運算符,因此作為成員函數重載時(shí)參數表中只有一個(gè)參數,對應于第二操作數,而第一操作數就是對象本身,僅以this指針的形式隱藏在參靈敏表中。
“+”是一個(gè)典型的二元運算符,除賦值類(lèi)運算符外的其他二元運算符的重載都可以參考這里描述的方法。
【全國計算機二級C++考試知識點(diǎn)】相關(guān)文章:
2017全國計算機二級C++考試試題06-20
計算機二級考試C++試題06-10
計算機二級考試C++試題及答案08-01
計算機二級考試C++試題及答案10-08
計算機二級c++主要考試內容09-25
2017計算機二級C++考試試題10-20
2017年全國計算機二級考試考試知識點(diǎn)積累10-08
計算機二級C++考試測試卷及答案08-21