當前位置:學問君>人在職場>IT認證>

全國計算機二級C++考試知識點

學問君 人氣:7.85K

C++引入了面向對象的概念,使得開發人機交互類型的應用程序更爲簡單、快捷。下面是本站小編收集的全國計算機二級C++考試知識點,希望大家認真閱讀!

全國計算機二級C++考試知識點

運算符函數據與運算符重載

運算符重載是計算機語言固有多態性的體現,是構成計算機語言的基礎之一。

C++把重載的運算符視爲特殊的函數,稱爲運算符函數。運算符重載就是函數重載的一種特殊情況。像對待一般重載函數一樣,編譯系統能夠依據使用運算符的不同環境,即參數(操作數)的數量或類型的差異,區分同一運算符的不同含義。

“運算符重載”是針對C++中原有運算符進行的,不可能透過重載創造出新的運算符。除了.、.*、->*、::、?:這五個運算符外,其他運算符都可以重載。由於很多符號是一元運算符和二元運算符公用的',爲了避免含混,不得爲重載的運算符函數設定默認值,調用時也就不得省略實參。

除了new和delete這兩個較爲特殊運算符以外,任何運算符如果作爲成員函數重載時不得重載爲靜態函數。=、[]、()、->以及所有的類型轉換運算符只能作爲成員函數重載,而且不能是針對枚舉類型操作數的重載。

運算符函數的函數名是由運算符前加關鍵字operator構成的,在聲明運算符或調用運算符時都可以用這個名稱

典範運算符的重載

1?關於分數類fraction

fraction的聲明和定義包含在頭檔案fraction.h和程序檔案中。

一個標準的用fraction表示的分數須滿足以下複印件:

①分母永遠爲正,分數和符號用分子表示;

②分子分母互質,即總表示爲最簡分數。

fraction透過兩個私有數據成員num和den分別儲存分子和分母,並在必要時調用standardize函數進行標準化處理,以使num和den的值滿足標準分數的條件。gcd是求兩個整數的最大公約數的函數,standardize在化簡分數時要調用它。

2?重載取負運算符“-”

因爲fraction用分子的符號代表整個分數的符號,因此所謂“取負”只需對分子num取負就可以了。由於取負運算符“-”是一元運算符,當作爲成員函數重載時參數表中沒有參數,那個唯一的操作數以this指針的形式隱藏在參數表中。爲此,只需要在fraction.h的類聲明中增加:

fractionpoerator-()const{returnfraction(-num,den);}

就可以了。由於在類聲明中直接給出了完整定義,因此是一個inline函數。

“-”是一個典型的一元運算符,除++、--外的其他一元運算符的重載都可以參考這裏描述的方法。

3?重載加法運算符“+”

“+”是一個二元運算符,因此作爲成員函數重載時參數表中只有一個參數,對應於第二操作數,而第一操作數就是對象本身,僅以this指針的形式隱藏在參靈敏表中。

“+”是一個典型的二元運算符,除賦值類運算符外的其他二元運算符的重載都可以參考這裏描述的方法。