詳細內容見:OOP
三大特性:封裝,繼承,多態。
封裝:就是打包,即,把數據和針對數據的操作,都統一到一個class里面。另:軟件對擴展開放,對修改關閉(開閉原則 open-close principle)
繼承:通過繼承創建的新類稱為“子類”或“派生類”。被繼承的類稱為“基類”、“父類”。
派生類的特點:使用現有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進行擴展。
另:在考慮使用繼承時,有一點需要注意,那就是兩個類之間的關系應該是“屬于”關系。例如,Employee是一個人,Manager也是一個人,因此這兩個類都可以繼承Person類。但是Leg類卻不能繼承Person類,因為腿并不是一個人。
多態:簡單來說,就是覆蓋,重載的總稱。
覆蓋(override),是指子類重新定義父類的虛函數的做法。
重載(overload),是指允許存在多個同名函數,而這些函數的參數表不同(或許參數個數不同,或許參數類型不同,或許兩者都不同)。
1.為什么析構函數要寫成虛擬的?
因為多態的存在。派生類的析構函數都自動變成virtual的,這樣析構時,就會調用基類的析構函數,不會因為沒調用導致的內存泄露。