C 覆蓋和隱藏

2022-06-09 18:36:06 字數 325 閱讀 8348

指的是:子類繼承父類屬性(函式),並且自身也有與父類同名的屬性(函式),這是編譯器就會在子類中對父類屬性做乙個隱藏,我們並不能通過子類物件直接點出父類相關屬性或函式,必須要在特定位置上加上父類作用域才可以。

指的是:子類繼承父類虛函式,並且對其重寫,這時,我們用乙個父類指標來接收子類物件位址。並通過這個父類指標來呼叫這個函式時,呼叫的就是子類重寫後的函式了。這操作成為覆蓋---子類重寫後的函式位址將父類虛函式位址進行覆蓋。不過這一切的一切都是通過函式指標(虛函式指標vfptr)來完成的。關於多型底層實現細節詳細資訊請見:

[​]

注意:

隱藏和覆蓋 C

我可以給你說說我的理解 我認為隱藏和覆蓋的區別主要體現在 多型上 舉個例子 隱藏和覆蓋 include include using namespace std class a void f class b public a virtual void g int main 結果是 a a b invo...

C 覆蓋和隱藏

class people virtual void getname different params 隱藏規則2 1 函式名相同 引數相同 2 無virtual void getphone same params 覆蓋規則 1 函式名相同 引數相同 2 有virtual virtual void g...

C 隱藏和覆蓋

1 在c 裡面,只有宣告vitual abstract和帶override的方法能夠被子類重寫 override 2 如果父類方法沒有以上關鍵字,子類又有和父類一樣的方法,那麼,就預設隱藏父類方法,這時候在命名空間後面要加new關鍵字 public newint sayhello 如果不加new關鍵...