31
技術社區[雲棲]
C++編程規範之35:避免從並非要設計成基類的類中繼承
摘要:
有些人並不想生孩子:本意是要獨立使用的類所遵守的設計藍圖與基類不同。將獨立類用作基類是一種嚴重的設計錯誤,應該避免。要添加行為,應該添加非成員函數而不是成員函數。要添加狀態,應該使用組合而不是繼承。要避免從具體的基類中繼承。
在添加新功能時應該通過新的非成員函數來添加,為了避免名字查找問題,一定要將這些函數與要擴展的類型放在同一個名字空間中。有些人不喜歡非成員函數,因為它的調用語法是Fun(str)而不是str.Fun(),但這隻是一種語法習慣和熟悉與否的問題而已。
最後更新:2017-04-03 12:53:58