C++ OOP学习记录
1、關于虛函數:
任何構造函數之外的非靜態函數都可以定義為虛函數。
virtual只能出現在類內部的聲明,而不能用于類外部的函數定義。
如果基類把一個函數聲明為一個虛函數,則該函數在派生類中被隱式地聲明為虛函數。
派生類中虛函數的形參與其基類對應虛函數的形參完全一致。
派生類中虛函數的返回類型也必須與基類函數匹配(當類的虛函數的返回類型是類本身的指針或引用時改規則無效)。
虛函數可以使用默認實參,如果某次函數調用使用了默認實參,則該實參值有本次調用的靜態類型決定。若果虛函數使用了默認實參,則基類和派生類中定于的默認實參最好一致。(可參考:https://blog.csdn.net/xuyiqiang87/article/details/41349575)
2、關于抽象基類
虛函數在聲明部分后面加=0,可以被聲明為純虛函數(只能出現在類內部虛函數聲明語句處)。
純虛函數無需定義,也可以在類的的外部提供定義。
含有純虛函數的類是抽象基類。抽象基類負責定義接口,而后續的其他類可以覆蓋該接口。派生類如果沒有覆蓋純虛函數,則它任然是抽象基類。不能創建抽象基類的對象。
?
3、共有、私有和受保護繼承
訪問權限受到兩個因素影響:
1:在基類中該成員的訪問說明符
私有private:派生類的成員無法訪問;
公有public:派生類的成員可以訪問;
受保護protected:派生類的成員可以訪問。
2:派生類的派生列表中的訪問說明符:
私有private繼承:派生類的對象無法訪問基類的公有對象;
公有public繼承:派生類的對象可以訪問基類的公有對象;
受保護protected繼承:派生類的對象無法訪問基類的公有對象。
基類所有的公有成員在受保護繼承的派生類中都是受保護的,即派生類的對象不能訪問它,但是派生類的成員可以訪問。
?
4、派生類向基類轉換的可訪問性
對于代碼中的摸個給定節點來說,如果基類的公有成員是可訪問的,則派生類向基類的類型轉換也是可訪問的,反之則不行。
https://blog.csdn.net/monster_acm/article/details/81200777
?
?
轉載于:https://www.cnblogs.com/zhang-le/p/10555398.html
總結
以上是生活随笔為你收集整理的C++ OOP学习记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: window mysql8.0 zip
- 下一篇: JTAG