博覽網C++學習第三週

本週學習真正的面向對象程序開發,編程

主要就是編寫幾個有關係(is-a)的類,而後編程的時候針對基類的指針和引用編程。設計模式

其實,C++在這裏(指面向對象編程)有一些慣用法:函數

1. 基類析構函數必爲虛函數學習

2. 基類應該要有虛函數(除了虛析函數外的虛函數),不然設計是有問題的。設計

3. C++中有一個派別認爲虛函數(除了虛析函數外的虛函數 ) 都應該是private的,指針

    這種思想本質上是將本來public的虛函數都「包裹」了一層非虛函數,非虛函數對象

    調用私有虛函數也就是模板方法設計模式。我以爲明白原理便可,每一個函數都內存

    這樣設計從開發效率上說過低了。開發

4. 其實C++搞面向對象的的最大短板就在於只能用指針(引用其實也同樣)表示內存管理

    一個對象族類。然而原生指針是不會本身作內存管理的,因此一堆的內存泄漏

    問題隨之而來。解決之道是std::shared_ptr<>,因此在這裏智能指針的使用時至關

    重要的,設計模式中C++也不該該直接用原生指針,也應該用std::shared_ptr<>。

5. 最後,我我的以爲若是用面向對象的設計,類族大部分應該是不可拷貝的,實在

    要拷貝也應該搞個「虛拷貝函數」 virtual Base* copy();

相關文章
相關標籤/搜索