假設我如今想要比較兩個整數的大小,因而我把這一功能寫成一個函數,經過函數來實現,而後,我在主函數中調用這個函數就能夠了。那假如我又想比較兩個float類型的數據的大小,兩個double類型的數據的大小,那豈不是我得再重寫函數,這樣一來,就會顯得至關的麻煩。爲了節省代碼,解決這一麻煩,C++引入了模板這一律念。那麼,在定義一個模板函數以前,得加上那麼一句話,用來申請模板變量。數組
template < typename T >
這樣一來,就能夠用T來表示各個數據類型了。如今,我來寫一個找出最大值的函數。
ide
T& max ( T& a, T& b ){ return ( ( a > b ) ? a: b ); }
固然,函數模板還支持數組類型的。好比,我在主函數中,寫了這麼些代碼:
函數
int main ( int argc, char** argv ){ char a[] = "chen"; char b[] = "tong"; //此時T = char[3]類型 }
若是是傳引用,那麼必須得保證兩個參數的數據長度同樣,可是若是傳的是指針,那麼參數長度就算不同也不會有任何問題。代碼以下:指針
template < typename T > T* mymax ( T* a, T* b ){ return ( a > b > ? a: b; }