自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++模板函數(shù)重載不同之處點評

開發(fā) 后端
大家可能對C++模板函數(shù)的理解還是有些不足之處。不要緊,今天我們就可以通過對C++模板函數(shù)重載的要點分析來充分掌握這一函數(shù)的應(yīng)用。

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

1:實例化后的模版函數(shù)如果和某個非模版函數(shù)的調(diào)用一樣的情況,會調(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 <typename T> 
  7. inline T const& max(T const& a, T const& b)  
  8. {  
  9. return a < b ? b : a;  
  10. }  
  11. // 這里模版函數(shù)實例化后的形式和一個非模版函數(shù)一致。
    可以使用下面的方法指定調(diào)用模版函數(shù)  
  12. int i = max<>(42, 66); 

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

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

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

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

【編輯推薦】

  1. C++模板參數(shù)具體概念講解
  2. C++左值與右值之間共同與不同點解析
  3. C++使用接口基本實現(xiàn)方式解析
  4. C++對象復(fù)制相關(guān)應(yīng)用方式淺析
  5. C++自定義類實際操作代碼淺析
責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-02-06 09:31:42

C++函數(shù)對象

2009-08-20 10:39:00

Java與C#的不同之

2010-02-03 09:52:52

C++指針與引用

2009-11-26 19:18:59

PHP函數(shù)implod

2021-03-09 16:38:48

加密貨幣比特幣貨幣

2010-03-10 10:58:12

python接口功能

2009-12-15 18:47:56

Ruby框架OG

2010-01-08 14:35:24

VB.NET模塊

2010-04-20 16:07:25

Oracle DRCP

2010-01-18 16:56:30

C++函數(shù)

2012-08-31 11:21:12

云計算大數(shù)據(jù)

2012-08-23 13:36:27

2017-03-14 15:46:30

AndroidiOS不同之處

2010-04-26 17:24:56

Unix操作系統(tǒng)

2009-09-25 16:13:03

Hibernate 3Hibernate2.

2014-08-14 17:11:51

LinuxWindows

2023-08-10 17:23:10

LibreOfficOpenOffice

2009-11-26 15:35:43

PHP函數(shù)eregi(

2010-04-08 11:11:16

Oracle查詢

2010-05-06 10:09:44

Oracle in
點贊
收藏

51CTO技術(shù)棧公眾號