基類指針和派生類指針


1 基類指針指向基類對象(正常使用)

2 派生類指針指向派生類對象(正常使用,不管是不是虛函數,調用的都是派生類的函數)

3 基類指針指向派生類對象(多態的體現,虛函數的話調用的是派生類的,非虛函數的話調用的是基類的

指針不能使用只存在於派生類而不存在於基類中的元素,也就是指向的是派生類中基類的部分

4 派生類指針指向基類對象(一般不要這么用)

基類與派生類的指針和成員函數調用原理

1.如果以一個基礎類指針指向一個衍生類對象(派生類對象),那么經由該指針只能訪問基礎類定義的函數(靜態聯編)

2.如果以一個衍生類指針指向一個基礎類對象,必須先做強制轉型動作(explicit cast),這種做法很危險,也不符合生活習慣,在程序設計上也會給程序員帶來困擾。(一般不會這么去定義)

3.如果基礎類和衍生類定義了相同名稱的成員函數(非虛函數),那么通過對象指針調用成員函數時,到底調用哪個函數要根據指針的類型(基類指針or派生類指針)來確定,而不是根據指針實際指向的對象類型確定。

4.如果基礎類和衍生類定義了相同名稱的成員函數(虛函數virtual),那么通過對象指針調用成員函數時,到底調用哪個函數要根據指針實際指向的對象類型(基類對象or派生類對象)來確定,而不是根據指針的類型確定。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM