您好,登錄后才能下訂單哦!
藍鷗iOS培訓講師推薦:對于C來說,其實C與C++的難度應該差不多少,都不是特別難,如果有基礎的話,那么學起來就更容易了。
C++為大家提供了函數模板,那么究竟函數模板是怎么回事呢?下面來了解一下!
事實上所謂的函數模板就是建立一個通用函數,其函數類型和形參類型不會具體指定,用一個虛擬的類型來代表。凡是函數體相同的函數都可以用這個模板來代替,不用定義多個函數,只需要在模板中定義一次就可以了。那么在調用函數的時候系統會根據實參的類型來取代模板中的虛擬類型,為了實現不一樣的函數的的功能。為了方便大家理解,下面給出一個例子,能夠讓大家更好的理解。
舉例:通過函數模板來實現(求兩個整數或3個整數中的最大數,如果輸入兩個整數,程序就輸出這兩個整數中的最大數,如果輸入3個整數,程序就輸出這3個整數中的最大數)
數據不用cin語句輸入,而在變量定義時初始化,程序第3~8行是定義模板。
定義函數模板的一般形式為:
template<typenameT>或template<classT>
通用函數定義通用函數定義
在建立函數模板時,只要將下面程序中定義的第一個函數首部的int改為T就可以了,也就是用虛擬的類型名T代替具體的數據類型,在對程序進行編譯時,遇到第13行調用函數max(i1,i2,i3),編譯系統會將函數名max與模板max相匹配,將實參的類型取代了函數模板中的虛擬類型T,此時相當于已定義了一個函數:
類型參數可以不僅僅是一個,可以根據自己的需要確定個數,例如:
那么大家可以很清楚的看到,用函數模板要比函數重載更簡單,更方便。不過需要注意的是它只適合在函數的參數個數一樣而類型不一樣的時候使用。那么要是參數的個數不一樣的話,就不能選用函數模板。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。