C 學習筆記草稿版18(模板)

2021-08-15 18:07:55 字數 578 閱讀 2686

泛型(generic programming)即是指具有在多種資料型別上皆可操作的含義。泛型程式設計的代表作品stl是一種高效、泛型、可互動操作的軟體元件。

泛型程式設計最初誕生於c++中,目的是為了實現c++的stl(標準模板庫)。其語言支援機制就是模板(templates)。模板的精神其實很簡單:引數化型別。換句話說,把乙個原本特定於某個型別的演算法或類當中的型別資訊抽調,抽出來做成模板引數t。

void swap(int & a, int & b)

void swap(double & a, double & b)

void swap(long & a, long & b)

int main()

template

template

返回型別 函式模板名(函式引數列表)

templatet>

void swap(t & a, t & b)

函式模板只適用於函式的引數個數相同而型別不同,且函式體相同的情況。如果個數不同,則不能用函式模板。

C 學習筆記草稿版系列7(命名空間)

namespace 命名空間為了大型專案開發,而引入的一種避免命名衝突的一種機制。比如說,在乙個大型專案中,要用到多家軟體開發商提供的類庫。在事先沒有約定的情況下,兩套類庫可能存在同名的函式或是全域性變數而產生衝突。專案越大,用到的類庫越多,開發人員越多,這種衝突就越明顯。作用域運算子,前面命名空間...

C 學習筆記草稿版16(基於多型的設計模式)

c 中有一種設計原則叫依賴倒置。也是給予多型的。定義 高層模組不應該依賴低層模組,兩者都應該依賴其抽象。抽象不應該依賴細節。細節應該依賴抽象。問題由來 類a直接依賴類b,如果要將類a改為依賴類c,則必須要通過修改類a的 來達成。這種場景下,類a一般是高層模組,負責複雜的業務邏輯 類b和類c是低層模組...

c 學習筆記(18)

類模板做友元 全域性函式類內實現 直接在類內宣告友元 全域性函式類外實現 需要提前讓編譯器知道全域性函式的存在 template classt1,class t2 class person 全域性函式的類內實現 friend void printperson personp 加入空模板的引數列表,表...