技術(shù)人員講述C++代碼編輯及技巧說明
C++代碼更多地靠第三方的庫來實現(xiàn)這些功能,因為C++是一個國際標(biāo)準(zhǔn),要在C++中加入這些語言之外的、面向應(yīng)用的特性還需要很長一段路要走,希望本文能教會你更多東西。。
我們已經(jīng)學(xué)過重載,對重載函數(shù)而言,C++的檢查機制能通過函數(shù)參數(shù)的不同及所屬類的不同,正確的調(diào)用重載函數(shù)。
例如,為求兩個數(shù)的***值,我們定義max()函數(shù)需要對不同的數(shù)據(jù)類型分別定義不同重載版本。
- int max(int x,int y);
- {
- return(x>y)?x:y ;
- }
- float max( float x,float y)
- {
- return (x>y)? x:y ;
- }
- double max(double x,double y)
- {
- return (c>y)? x:y ;
- }
現(xiàn)在,我們再重新審視上述的max()函數(shù),它們都具有同樣的功能,即求兩個數(shù)的***值,能否只寫一套代碼解決這個問題呢?這樣就會避免因重載函數(shù)定義不全面而帶來的調(diào)用錯誤。
為解決上述問題C++代碼引入模板機制,模板定義:模板就是實現(xiàn)代碼重用機制的一種工具,它可以實現(xiàn)類型參數(shù)化,即把類型定義為參數(shù),從而實現(xiàn)了真正的代碼可重用性。
模板分類:模板分為函數(shù)模板和模板函數(shù),當(dāng)編譯系統(tǒng)發(fā)現(xiàn)了一個對應(yīng)的函數(shù)調(diào)用時,將根據(jù)實參的類型來確認是否匹配函數(shù)模板中對應(yīng)的形參然后生成一個重載函數(shù),稱該重載函數(shù)為模板函數(shù)。
函數(shù)模板與模板函數(shù)的區(qū)別: 二者區(qū)別可以類比 類與對象的區(qū)別。函數(shù)模板與類相似是模板的定義,而模板函數(shù)與對象相似,是函數(shù)模板的實例,具有程序代碼,占用內(nèi)存空間。#t#
同樣,在說明了一個類模板后,也可以創(chuàng)建類模板的實例即生成模板類。類模板與模板類的區(qū)別是:類模板是模板的定義,不是一個實在的類,模板類才是實實在在的類。
程序分析:main()函數(shù)中定義了兩個整型變量n1 , n2 兩個雙精度類型變量d1 , d2然后調(diào)用min( n1, n2); 即實例化函數(shù)模板T min(T x, T y)其中T為int型,求出n1,n2中的最小值.同理調(diào)用min(d1,d2)時,求出d1,d2中的最小值。