20200405_重載和重寫

20200405_重載和重寫

每日小知識

米格爾·格林貝格,近30年開發經驗的軟件工程師,以撰寫Python項目開發的博客而廣爲Python開發者所熟知,經常受邀在PyCon等大會上分享開發經驗。代表作有《Flask Web開發:基於Python的Web應用開發實戰》(第2版)

一、相關術語

  • 重載
    C++允許在同一範圍中聲明幾個功能類似的同名函數,但是它們的形參不同,即同一個函數名可以實現不同的行爲。這種函數就叫作重載函數。

  • 重寫(覆蓋)
    重寫,又叫覆蓋,是由子類函數重新實現父類virtual函數的一種方式。

二、筆試題

1、重載與重寫的區別。
答:(一)定義上的區別:重載是指不同的函數使用相同的函數名,但參數列表不同。
重寫,又名覆蓋,是指在派生類中重新對基類中的虛函數重新實現,參數列表相同,但函數體不同。

(二)規則上的區別:重載的規則是:參數列表必須不同。

(三)命名上的區別:
重載,overloading。重寫,overwriting。

2、多態的作用。

答:(一)隱藏實現細節,使代碼可以模塊化。擴展代碼模塊,實現可重用。
(二)接口重用:爲了類在繼承和派生的時候,保證使用家族中任一類的實例的某一屬性時的正確調用。

3、new、delete和malloc、free的聯繫與區別。
答:聯繫:都是在堆上進行動態的內在操作。
區別:malloc需要指定內存分配的字節,且不能初始化對象。
new會自動調用對象的構造函數,delete會自動調用對象的析構函數。
free不會調用對象的析構函數。

知識擴展

無。

本文歸類

建議歸類到【C++】。

明日計劃

1、#define DOUBLE(x)x+x。
2、哪些情況只能用initialization而不能用assignment?
3、C++是不是類型安全的?

參考文獻:

《C++筆試面試寶典2011版.docx》
重載函數_百度百科
重載與重寫的區別_百度知道

今日收藏:

重載與重寫的區別_百度知道

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章