1:名稱遮蓋
名稱遮蓋就是子類中宣告的函式名與父類中宣告的函式名相同(返回值,引數型別和個數同於不同無關緊要,函式是否為虛也無關緊要),子類物件訪問不到父類所定義的同名函式。
示例1:
#include class b
結果為:
d::fun1
b::fun1
表明在編譯器內並不是直接查詢虛函式表,來判斷fun1是否在虛函式表中。就我而言,編譯器會根據靜態型別(b)判斷虛函式表的哪些函式,指標(pb)可以訪問。此例中基類b並沒有虛函式,故pb不會去訪問虛函式表,進而不會訪問虛函式表中的fun1。
示例3:
#include class b
pb->fun1()的訪問級別受靜態型別(b)的限制。
示例4:
#include class b
結果:d::fun1
通過父類指標(pb)訪問到了子類的私有成員。說明函的訪問許可權由靜態型別確定。
以上示例只是用於語法測試,沒有考慮現實中物件導向設計所應該遵循的原則。如有錯誤,望君賜教。
關於C 中的一些概念
關於c 中的一些概念 1 iostream和iostream.h的區別 前者沒有字尾,實際上,在編譯器include資料夾裡面可以看到,二者是兩個檔案,開啟檔案就會發現,裡面的 是不一樣的。字尾為.h的標頭檔案c 標準已經明確提出不支援了,早些的實現將標準庫功能定義在全域性空間裡,宣告在帶.h字尾的...
C 中基本的一些概念
1.c 中類和c語言中的結構體 兩者都是資料型別,類中的成員預設為私有的,而結構體中的成員預設為共有的。類中新增了結構體沒有的成員函式。c 之所有說是物件導向的,就是因為引入了類,類的例項化 賦予具體的初值 就是物件。2.類的書寫形式 class student 3.類中很重要的概念繼承 繼承的好處...
C 繼承中的一些概念
物件導向程式設計也叫做 oop程式設計 物件導向程式設計就是 結構化程式設計,對 程式中的變數結構劃分,讓 程式設計更清晰。類實際上是 建立物件的模板,每個物件都包含資料,並提供了處理和訪問資料的方法。類定義了類的每個物件 稱為例項 可以包含什麼 資料和功能。類中的資料和函式稱為類的成員 資料成員 ...