函數模板

   假設我如今想要比較兩個整數的大小,因而我把這一功能寫成一個函數,經過函數來實現,而後,我在主函數中調用這個函數就能夠了。那假如我又想比較兩個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;
}
相關文章
相關標籤/搜索