C 泛型程式設計

2021-10-19 23:29:25 字數 933 閱讀 6402

1.模板介紹

泛型程式設計:指的是直接應用「使用模板編寫好的函式模板或類模板庫程式」進行程式設計。在具體使用時,程式設計師只需向使用的庫函式或類模板提供型別或值即可。模板是泛型程式設計的基礎。比如使用標準模板庫中的容器、迭代器進行程式設計,就是泛型程式設計。

模板函式:「模板函式」強調的是函式,函式使用模板實現。

函式模板,「函式模板」強調的是模板,模板實現的是函式的功能。

2.類模板和函式模板的通式

①函式模板:template返回型別 函式名(形參列表)。

如:templatevoid f(t a)

②類模板:templateclass 類名。類模板必須使用顯示模板實參建立物件。

如:ama;

3.理解模板

①模板以關鍵字template開始,並在其後加上尖括號<>。

②模板形參:在宣告或定義模板時尖括號中的就是模板形參,其形式為「class或typename模板形參名」。比如templatevoid f();其中t就是模板形參,多個模板形參使用逗號隔開。注意:模板形參表不能為空。

③模板實參:與模板形參相對應,用來傳遞給模板形參以確定其值,這裡的值有可能是某種型別,也有可能是某個具體的值,而非傳統意義上的具體的數值。若模板形參代表的是某種型別,則模板實參就是具體的一種型別,該型別可以是自定義的型別(類型別)、內建型別(int),甚至可以是類模板型別。

4.修飾模板關鍵字的位置

①對模板進行修飾的關鍵字(如friend,inline,const,extern,virtual,static等)應位於template《模板形參表》之後。比如templatestatic void f();宣告f為靜態函式;

②模板預設為外部鏈結。函式模板可以為內部鏈結,即可以使用static修飾。比如templatestatic void f(){};

③內聯函式模板需要使用關鍵字inline明確指定(除非其本身就是內聯的,如位於類的內部)。

c 泛型程式設計

對於兩個不同的概念a和b,如果概念a所需求的所有功能也是概念b所需求的功能,那麼就說概念b是概念a的子概念。例如 標準模板庫 standard template library,簡稱stl 提供了一些非常常用的資料結構和演算法 將函式物件作為演算法的引數而不是將函式所執行的運算作為演算法的一部分。使...

C語言泛型程式設計 泛型氣泡排序

在實際程式設計中,常常會需要一些方法 函式 比如排序,它們具體實現基本一致,僅僅只有引數型別不同,那麼可不可以有一種通用的函式,不管是什麼型別的引數都可以通用呢?泛型程式設計 泛型即是指具有在多種資料型別上皆可操作的含義,與模板有些相似。利用泛型程式設計,我們可以寫一些通用的函式,以減少 量,實現 ...

C語言泛型程式設計 泛型氣泡排序

在實際程式設計中,常常會需要一些方法 函式 比如排序,它們具體實現基本一致,僅僅只有引數型別不同,那麼可不可以有一種通用的函式,不管是什麼型別的引數都可以通用呢?泛型程式設計 泛型即是指具有在多種資料型別上皆可操作的含義,與模板有些相似。利用泛型程式設計,我們可以寫一些通用的函式,以減少 量,實現 ...