C 函式模板

2021-08-14 21:16:37 字數 1368 閱讀 6610

乙個函式是不是只能用固定的資料型別呢?答案是否定的。只要是遇到處理完全相同,但是型別不一樣的函式就可以使用函式模板。函式模板可以增加**重用率,它使用非特定型別定義函式,到使用的時候再使用特定的型別替代。在沒有函式模板的情況下,當我們需要對多種不同的資料型別進行相同的操作時,只能使用函式過載的方法,定義出多個函式。例子如下:

//函式過載

#include

int min(int ii, int jj, int kk)

else

if ((jj < ii) && (jj < kk))

else

return temp;

}double min(double ii, double jj, double kk)

else

if ((jj < ii) && (jj < kk))

else

return temp;

}float min(float ii, float jj, float kk)

else

if ((jj < ii) && (jj < kk))

else

return temp;

}int main()

使用函式模板後,可以將**改寫成如下形式

#include 

//使用函式模板,可以大大減少**量

template

t min(t ii, t jj, t kk)

else

if ((jj < ii) && (jj < kk))

else

return temp;

}int main()

函式模板還可以進行過載,特別是對於原模板函式存在缺陷的情況下,可以對函式進行定製。例子如下:

#include 

#include

template

t min(t ii, t jj, t kk)

else

if ((jj < ii) && (jj < kk))

else

return temp;

}const

char *min (const

char *ch1, const

char *ch2, const

char *ch3)

else

if ((result3 < 0) && (result4 < 0))

else

return temp;

}int main()

對有缺陷的函式模板,使用同名非模板函式進行過載,這種操作稱為函式定製

c 函式模板

include using namespace std template t max t a,t b,t c int main int main int i1 185,i2 76,i3 567,i double d1 56.63,d2 90.23,d3 3214.78,d long g1 67854...

c 函式模板

關鍵字template總是放在模板的電腦關於與宣告的最前面,關鍵字後面是用逗號分隔的模板參數列,該列表是模板參數列,不能為空。模板引數可以是乙個模板型別引數,它代表了一種型別 也可以是乙個模板非型別引數,它代表了乙個常量表示式。模板型別引數由關鍵字class或typename後加乙個識別符號構成。在...

C 函式模板

c 提供了函式模板 function template 所謂函式模板,實際上是建立乙個通用函式,其函式型別和形參型別不具體指定,用乙個虛擬的型別來代表。這個通用函式就稱為函式模板。凡是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需在模板中定義一次即可。在呼叫函式時系統會根據實參的型別...