面試時如何回答 C 的多型

2021-10-02 04:19:19 字數 1137 閱讀 9866

三次面試都遇到了這個問題

我想必須把這個問題搞得引經據典的清楚才不愧對這三次被拒的offer

讓下一家再敢問這個問題的面試官,也能一下梳理出幾種多型,提問者竟然學到了知識,他肯定好感大增

簡單講,乙個介面,多個方法。封裝是**重用,多型是介面重用。

c++的多型性是通過虛函式來實現的

子類重新定義父類的方法稱為覆蓋也叫重寫override

同乙個作用域內, 允許有多個同名的函式,這些函式的引數列表不同成為過載,但這並沒有體現多型特性

多型非多型的區別就是早繫結還是晚繫結,

編譯期間確定函式的是靜態編譯,早繫結。

執行時才能確定的是動態編譯,晚繫結,才是多型。

(動態多型就是通過繼承+虛函式才能實現)

只有重寫了虛函式才算體現了多型性

虛函式的定義是:在基類中進行的,基類中需要定義為虛函式的成員函式的宣告冠以關鍵字 virtual。

此虛函式就可以在乙個或多個派生類中被重新定義。但是介面型別、引數個數等都必須與基類一致!

是過載的另一種表現形似,是一種動態過載的方式。提供更靈活的執行時的多型機制。動態鏈結。(只有通過使用基類指標訪問虛函式時才能獲得執行時的多型性。)

抽象類不能例項化物件,只能被繼承。

過載overload:同一作用域,引數列表不同(靜態多型),早繫結

【編譯器通過引數列表的不同內部給函式重新命名成一些預處理函式,分別呼叫,這並不是多型】

重寫override(覆蓋):不同作用域,子類繼承了基類的函式。基類必須有virtual關鍵字。引數必須相同

重寫的函式是虛函式,因而體現了動態多型,晚繫結

重定義redefine(隱藏):不同作用域。

引數不同時,基類被隱藏;引數相同但是基類無virtual時,基類被隱藏。

面試時,如何巧妙回答跳槽問題

假設你現在已經不是職場新人,已經從以前的小白經過在職場磨練變成了老鳥,可是因為跳槽等各種原因需要重新找工作 面試,那在面試的過程中面試官一般都會問同乙個問題 你為什麼離職?因為通過這道題可以洞察乙個人的求職動機 價值取向 忠誠度 心態 品格 某方面的能力缺陷等情況。要回答好這道問題確實不易,有很多人...

軟體測試 面試時如何回答介面測試怎麼進行

介面測試顧名思義就是對測試系統元件間介面的一種測試,介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的互動點。測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。現如今系統越來越複雜,傳統的靠前端測試已經大大降低了效率,而且我們都知道,測試時間介入得越早,那...

軟體測試 面試時如何回答介面測試怎麼進行

介面測試顧名思義就是對測試系統元件間介面的一種測試,介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的互動點。測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。現如今系統越來越複雜,傳統的靠前端測試已經大大降低了效率,而且我們都知道,測試時間介入得越早,那...