一、設計模式分類: 按照目的來分,設計模式可以分為創(chuàng)建型模式、結構型模式和行為型模式。(分類如下表) 創(chuàng)建型模式用來處理對象的創(chuàng)建過程; 結構型模式用來處理類或者對象的...
一、設計模式分類: 按照目的來分,設計模式可以分為創(chuàng)建型模式、結構型模式和行為型模式。(分類如下表) 創(chuàng)建型模式用來處理對象的創(chuàng)建過程; 結構型模式用來處理類或者對象的...
狀態(tài)模式 一、描述 概念:允許一個對象在其內部狀態(tài)改變時改變它的行為。 對象看起來似乎修改了它的類。 問題: 每個人、事物在不同的狀態(tài)下會有不同表現(動作),而一個狀態(tài)又會在...
Composite 模式 一、描述 概念:將對象組合成樹形結構以表示“部分-整體”的層次結構。 Composite使得用戶對單個對象和組合的使用具有一致性。 Composit...
Factory Method(工廠方法) 1 應用場景 在軟件系統(tǒng)中,經常面臨著創(chuàng)建對象的工作;由于需求的變化,需要創(chuàng)建的對象的具體類型經常變化。 2 定義與解釋 定義一個用...
一、8個重要的設計原則 ①依賴倒置原則(DIP) 高層模塊(穩(wěn)定)不應該依賴底層模塊(變化),二者都應該依賴于抽象(穩(wěn)定);抽象不應該依賴于實現細節(jié),實現細節(jié)應該依賴抽象。 ...
1.一個萬用的hash function 在之前的課程中,我們知道以Hash Table為底層的容器過程(如unordered_map),在使用過程中,必須要有一個hash ...
1.C++標準庫的算法,是什么東西? 從語言的層面講,STL的算法都長下面兩個樣子: template Algorithm(Iterator itr1, Iterator i...
1 STL組建(STL Components) 關鍵組建:容器,迭代器,算法 STL的基本觀念就是將數據和操作分離,數據由容器類加以管理,操作則由可定制的算法定義之, 迭代器...
c++stack(堆棧)是一個容器的改編,它實現了一個先進后出的數據結構(FILO) 使用該容器時需要包含#include頭文件; 定義stack對象的示例代碼如下: sta...
各容器測試(使用方法類似,需要根據上圖結構,來選擇不同場景使用(可根據容器名查詢使用方法)): 使用容器array: 內存連續(xù) 使用容器vector: 內存連續(xù),擴大需要移動...
1.源代碼分布 標準庫STL的文件位置,與所采用的編譯器有關: (1)Visual C++:...\include (例如 D:\Program Files (x86)\Mi...
對象模型 vptr虛函數指針 若類對象中含有虛函數,則在對象模型中會存在一根虛函數指針 vtbl虛函數表 虛函數指針指向一塊內存,稱為虛表 虛表的內容是一段地址,指向該類對象...
一、虛函數表 對C++ 虛函數(Virtual Function)是通過一張?zhí)摵瘮当恚╒irtual Table)來實現的。 簡稱為V-Table。 在這個表中,主是要一個類...
一、基本概念 1、類的繼承,是新的類從已有類那里得到已有的特性。 或從已有類產生新類的過程就是類的派生。 原有的類稱為基類或父類,產生的新類稱為派生類或子類。 2、派生類的聲...
帶指針類設 帶指針類必須含有拷貝構造、拷貝賦值以及析構函數。 1.String類解析 在string類中有一個私有的指針指向內存中的字符串,當我們需要使用這個字符串時才通過指...
1.編寫頭文件時要加上防衛(wèi)式聲明 2.模板的定義和使用 有時候我們不確定要定義的類里面的數據類型,因此我們使用模板來定義這個數據。 這樣在類實例化的時候可以臨時定義它的數據類...