定義:帶有型別引數的函式
格式:
template
<
classt1,
classt2,
....
>
//也可以是typename
《返回值型別》
《函式名》
(《參數列》
)
t1、t2是函式模板的型別引數
使用函式模板定義的函式時需要提供具體型別,返回值型別,參數列中的引數型別以及函式體中的區域性變數的型別可以是t1,t2等。示例:
template
<
class
t>
void
sort
(t elements,
unsigned
int count)
函式模板定義了一系列過載的函式,首先必須要對函式模板進行例項化(生成具體的函式),函式模板的例項化通常是隱式的,有時需要在程式中顯式地例項化函式模板。示例:
#include
using
namespace std;
template
<
class
t>
swap
(t &x, t &y)
intmain()
函式模板的偏特化、特化:
template
<
classt1,
class
t2>
void
func
(t1 a,t2 b)
//特化:全部模板引數特化
template
<
>
void
func
(double a,
int b)
//偏特化:部分函式模板引數特化
template
<
class
t2>
void
func
(float a,t2 b)
定義:如果乙個類的成員的型別可變,則稱為類屬性
格式:
template
<
classt1,
classt2,
...>
class
《類名》
與函式模板不同的是,類模板只能進行顯式的例項化。如果有需要,可與模板函式結合,利用模板函式隱式例項化模板類。
類模板中的靜態成員:
#include
using
namespace std;
template
<
class
t>
classa;
template
<
class
t>
int a
::x=12;
intmain()
C 模板(泛型)
模板概念 模板是建立通用模具,大大提高復用性,將型別引數化。c 泛式程式設計思想,主要利用的技術就是模板 c 提供模板機制 函式模板和類模板 函式模板和類模板區別 類模板沒有自動型別推導使用方式 類模板在模板引數列表中可以有預設引數 作用 建立通用函式,其函式返回值型別和形參型別可以不具體制定,用乙...
C 泛型程式設計 模板
在學習c c 過程中,我們可能常用幾種函式,由於傳入的引數不同,需要進行不同的函式的編寫,在c語言中需要根據引數和功能的不同重新編寫新的函式,而在c 中有函式過載這樣的機制,一定程度上解決了問題,但是 過載的函式僅僅只是型別不同,的復用率比較低,只要有新型別出現時,就需要增加對應的函式 的可維護性比...
C 泛型程式設計(模板)
2.類模板 我們先來看乙個概念 泛型程式設計 使用模板,編寫和型別無關的 沒有模板之前,一些函式或者類,針對不同的型別需要寫很多重複的 函式 比如交換函式swap,假如傳入的資料型別不同,int,char,double。我們要實現不同的型別物件函式。類 比如我們像實現乙個資料結構棧stack,sta...