學習沒有捷徑,但考試有捷徑常量(const、符號、字串常量、立即數)
引用和指標
類的封裝和隱藏(靜態成員、友元函式)
類的初始化(初始化方式和順序)
類的繼承(繼承方式、構函列表、多繼承)
類的多型性(函式過載、運算子過載、虛函式、虛函式表)類的作用域概念
規則不可創造新的運算子
不可修改基本資料型別的運算子操作
不可過載的運算子
*
::
.
? :
乙個疑惑
在實現極座標形式複數的表示時,疑惑:
如何過載乘法符號*
?
答案:可以過載,僅*
做為取內容運算子時不能過載
避免二義性問題
void
fun(
void);
void
fun(
int a =6)
;
不可同時使用,最好使用引數預設方式
公有繼承時,派生類是基類的子型別
派生類的物件可以做為基類的物件進行處理,需要基類物件的任何地方都可以使用公有派生類的物件來代替,可以使用相同的函式統一處理。
關係可以傳遞,但不可逆
可以將派生類賦值給基類
乙個指向基類的指標可以指向任何公有派生類的物件
將基類函式(成員函式,除建構函式)指定為虛函式
virtual
void
printstandard()
;
則派生類可對其進行重新定義,若不修改則沿用基類函式
必須完全一致
函式形參為基類引用或指標,實參傳入派生類物件,若呼叫函式為虛函式則可呼叫派生類對應的函式。
但僅在派生類中重新定義只能呼叫基類函式。
虛函式表(virtual function table)基類需要靠派生類提供各個具體實現版本
基類為抽象類,可傳遞
virtual
void
printstandard()
=0;
可以在宣告為虛函式的同時,提供實現版本
不得宣告純虛函式為內聯函式
C 高階 七 多型性2
運算子過載是針對新型別資料的實際需要,對原有運算子進行適當的改造。例如 過載為類的非靜態成員函式 過載為非成員函式。函式型別 operator 運算子 形參 引數個數 原運算元個數 1 後置 除外 規則 運算元 源 include using namespace std class complex ...
C 高階 七 多型性3
有些運算子不能過載為成員函式,例如二元運算子的左運算元不是物件,或者是不能由我們過載運算子的物件 表示式oprd1 b oprd2 等同於operator b oprd1,oprd2 表示式 b oprd 等同於operator b oprd 表示式 oprd b 等同於operator b opr...
C 高階 七 多型性6
8 6.cpp include using namespace std class base1 class base2 public base1 void base2 display const class derived public base2 void derived display cons...