1、如果乙個類要成為基類,那麼它的成員變數宣告成受保護的變數,既用關鍵字protected修飾。
2、處理共同繼承產生的二義性:採用虛繼承方式,當出現兩個相同的成員時,編譯器會自動刪除其中乙個。其方法是在繼承的時候加上關鍵字:virtual。也可以將會產生二義性的成員宣告為私有成員。但是這種方法不可用,實際開發中無意義。
3、賦值有兩種情況:(1)、同類物件可以相互賦值。(2)、派生類兌現可以為基類賦值(但是基類物件不能為派生類物件賦值)。這種賦值方式只能賦值公共成員,因為私有成員不能被繼承,既派生類物件中沒有基類的私有成員,因此不能被繼承。
4、基類指標可以儲存派生類物件位址。引用也是一樣的。
5、用指標指向類物件時,它能訪問的範圍由它的指標型別決定。
6、組合:用物件作為成員變數。在建立的過程中,是先建立成員變數的物件。在呼叫建構函式時,需要通過引數列表。這裡與派生類的引數列表不同,用的是物件名,而非類名。其呼叫建構函式的順序以類中定義的順序為準,不因引數列表書寫順序。組合能做的事情,繼承都能做。但是這裡涉及到程式設計思想的問題。繼承應該要滿足「是」的要求。即「派生類」是「基類」。而組合僅僅是讓該類的物件具有某乙個功能。這一點必須分清楚。
7、類是本質性的它可以直接寫或是從基類繼承,它應該怎樣去定義,應該根據實際業務去定義。而組合是擴充套件功能,是可有可無的。在實際開發中,因多用組合,少用繼承。因為組合的耦合性相對較低。
8、設計模式(23種)->符合設計原則->設計出可擴充套件、可維護的專案。
9、當組合和繼承同時存在時,先呼叫繼承的建構函式,再呼叫組合的建構函式。析構函式呼叫順序與構造函式呼叫順序相反。使用初始化表時,盡量與構造函式呼叫順序相同,否則會報警告。
10、業務第一,思想第二。思想是為業務服務的。
11、繼承是型別上的包含關係或者同類。組合是完全沒有關聯。是功能的擴充套件。
C 學習筆錄4
1 容器 資料結構 演算法。相當於是為複雜的資料設計一種專門用於存放該資料的東西。用於開發中傳遞複雜的資料。2 模版函式只能寫在標頭檔案中。不能單獨做宣告。3 stl容器類分為三類 1 順序容器類 vector 陣列。查詢快,但是插入慢。加入的資料順序與大小有關。deque 陣列。比vector查詢...
Python學習筆錄
參考 1.type和isinstance區別 type a a,type 不會認為子類是一種父類型別。isinstance a a isinstance 會認為子類是一種父類型別。2.標準資料型別 python3 中有六個標準的資料型別 number 數字 string 字串 list 列表 tup...
git 學習筆錄
說到git命令,首先我們要理解git 的執行原理,簡單的分為4個部分,分別是workspace工作區,stage快取區,resposity 本地倉庫以及remote遠端倉庫 從根本來說,git就是一套內容定址檔案系統,我們學會一些簡單的命令列操作即可,目的就是將我們本地倉庫 提交至遠端倉庫,中間的快...