日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
C++模板函數(shù)重載不同之處點(diǎn)評(píng)

在C++編程語(yǔ)言中,有一種比較特殊的函數(shù)叫做模板函數(shù)。不過(guò)實(shí)際上它與普通的函數(shù)還是多少有些相同之處的。在這里我們將會(huì)為大家講解一下C++模板函數(shù)重載中,不同于普通函數(shù)應(yīng)用的幾點(diǎn)注意事項(xiàng)。

1:實(shí)例化后的模版函數(shù)如果和某個(gè)非模版函數(shù)的調(diào)用一樣的情況,會(huì)調(diào)用非模版函數(shù)。但也可以指定調(diào)用模版函數(shù),如:

 
 
 
  1. inline int const& max(int const& a, int const& b)  
  2. {  
  3. // 為了便于區(qū)分,讓返回結(jié)果+100  
  4. return a < b ? a+10 : b+100;  
  5. }  
  6. template  
  7. inline T const& max(T const& a, T const& b)  
  8. {  
  9. return a < b ? b : a;  
  10. }  
  11. // 這里模版函數(shù)實(shí)例化后的形式和一個(gè)非模版函數(shù)一致。
    可以使用下面的方法指定調(diào)用模版函數(shù)  
  12. int i = max<>(42, 66); 

2:由于C++模板函數(shù)重載的參數(shù)是類(lèi)型,因此它不支持類(lèi)型轉(zhuǎn)化。但非模版函數(shù)支持類(lèi)型轉(zhuǎn)換:

 
 
 
  1. inline int const& max(int const& a, int const& b)  
  2. {  
  3. return a < b ? b : a;  
  4. }  
  5. template 
  6. inline T const& max(T const& a, T const& b)  
  7. {  
  8. return a < b ? b : a;  
  9. }  
  10. // 由于模版函數(shù)不支持類(lèi)型轉(zhuǎn)換,這里將調(diào)用非模版的max函數(shù)  
  11. max('c', 42.2); 

試想上面的代碼中,如果max('c', 42.2)要調(diào)用模板的max函數(shù),它必須滿足兩個(gè)參數(shù)和返回值都是同一類(lèi)型的條件。而給定的兩個(gè)參數(shù)類(lèi)型不一致,模板函數(shù)又不支持類(lèi)型轉(zhuǎn)換。因此,它找不到相匹配的模板函數(shù),將會(huì)調(diào)用非模板的max函數(shù)。而如果我們強(qiáng)制使用max<>('c', 42.2)調(diào)用模板函數(shù)的話將會(huì)出現(xiàn)編譯錯(cuò)誤。

以上就是對(duì)C++模板函數(shù)重載的相關(guān)介紹。


分享名稱(chēng):C++模板函數(shù)重載不同之處點(diǎn)評(píng)
文章路徑:http://www.dlmjj.cn/article/dhijgoj.html