博覽網C 學習第三週

2022-08-04 22:33:19 字數 620 閱讀 5061

本週學習真正的物件導向程式開發,

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

其實,c++在這裡(指物件導向程式設計)有一些慣用法:

1. 基類析構函式必為虛函式

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

3. c++中有乙個派別認為虛函式(除了虛析函式外的虛函式 ) 都應該是private的,

這種思想本質上是將原本public的虛函式都「包裹」了一層非虛函式,非虛函式

呼叫私有虛函式也就是模板方法設計模式。我覺得明白原理即可,每個函式都

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

4. 其實c++搞物件導向的的最大短板就在於只能用指標(引用其實也一樣)表示

乙個物件族類。然而原生指標是不會自己做記憶體管理的,所以一堆的記憶體洩漏

問題隨之而來。解決之道是std::shared_ptr<>,所以在這裡智慧型指標的使用時相當

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

5. 最後,我個人覺得如果用物件導向的設計,類族大部分應該是不可拷貝的,實在

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

學習C 的第三週

一.sort排序 1.須加的標頭檔案 include algorithm 2.sort函式有三個引數 第三個引數可不寫 1 第乙個是要排序的陣列的起始位址。2 第二個是結束的位址 最後一位要排序的位址 3 第三個引數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個引數,此時預設的排序方法...

博覽網C 學習第五周

本週主要學習內容 一.vptr以及基於vptr的動態繫結機制 其實c 標準並沒有規定如何實現多型,不過似乎目前所有的c 編譯器都是通過vptr來實現多型。不過具體說到vptr在記憶體中的具體位置 物件開頭還是物件末尾 似乎不同編譯器還是有不同的實現。此外,我個人認為c 物件模型大概知道下游那麼一回事...

第三週學習總結

這周關於深度學習的內容比較簡單,是對線性代數的簡單回顧,所以我在這裡做乙個簡單的總結。向量與矩陣 矩陣是由m n個數組成的乙個m行n列的矩形 特別地,乙個m 1矩陣也稱為乙個m維列向量 而乙個1 n矩陣 也稱為乙個n維行向量.向量可以用矩陣表示,且有時特殊矩陣就是向量.簡言之就是矩陣包含向量.矩陣加...