1. 程式人生 > >C++基礎篇--成員函式同名隱藏(overwrite)

C++基礎篇--成員函式同名隱藏(overwrite)

     不同於過載和覆蓋的正面功能,同名隱藏在程式設計中應儘量避免:1)由於缺少類似virtual這種明顯的語法特徵,很多人容易忽略C++“隱藏”機制的存在,當派生類與基類函式同名時就和過載、覆蓋等機制混淆,既降低可讀性,又易產生bug。2)從面向物件思想的角度,隱藏也應儘量避免。基類裡使用普通函式就代表這一功能在類的傳承鏈中應固定不變,所有派生類都直接繼承使用,隱藏則表明後來對這種繼承鏈條的否定,體現了一種不變性部分的突變,使得邏輯上不協調。換句話,既然要隱藏,當初基類函式中就應該使用virtual,以代表類功能中可變部分的功能。