當前位置:才華齋>IT認證>計算機等級>

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

計算機等級 閱讀(3.04W)

C++引入了面向物件的概念,使得開發人機互動型別的應用程式更為簡單、快捷。下面是yjbys小編收集的全國計算機二級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指標的形式隱藏在參靈敏表中。

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