程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++指針重載應用代碼解讀

C++指針重載應用代碼解讀

編輯:C++入門知識

C++編程語言既然是C語言的高級升級版本。那麼它當然擁有C語言的所有功能。並且在一定程度上還擁有很多比較實用的應用功能。今天我們為大家介紹的是其中關於指針的操作,有關C++指針重載的具體應用方法的介紹。

C++指針重載相關代碼示例:

  1. #include "stdafx.h"  
  2. #include < iostream> 
  3. #include < string> 
  4. template< typename T> 
  5. inline T const& max(T const& a, T const& b)  
  6. {  
  7. return a <  b ? b : a;  
  8. }  
  9. // 求兩個指針所指值的最大者  
  10. template< typename T> 
  11. inline T const& max(T* const& a, T* const& b)  
  12. {  
  13. return *a <  *b ? *b : *a;  
  14. }  
  15. // 求兩個字符串的最大者  
  16. inline char const* const& max(char const* const& a, 
    char const* const& b)  
  17. {  
  18. return strcmp(a, b) <  0 ? b : a;  
  19. }  
  20. int _tmain(int argc, _TCHAR* argv[])  
  21. {  
  22. // 比較兩個int的最大值,將調用第一個max模版  
  23. int a = 7;  
  24. int b = 42;  
  25. std::cout< < "max(a, b)==>"< < ::max(a, b)< < std::endl;  
  26. // 比較兩個string的最大值,將調用第一個max模版  
  27. std::string s = "hey";  
  28. std::string t = "you";  
  29. std::cout< < "max(s, t)==>"< < ::max(s, t)< < std::endl;  
  30. // 比較兩個指針所指內容的最大值,將調用第二個max模版  
  31. int* p1 = &a;  
  32. int* p2 = &b;  
  33. std::cout< < "max(p1, p2)==>"< < ::max(p1, p2)< < std::endl;  
  34. // 比較兩個c字符串的最大值,將調用第三個非模版max函數  
  35. char const* s1 = "David";  
  36. char const* s2 = "Nico";  
  37. std::cout< < "max(s1, s2)==>"< < ::max(s1, s2)< < std::endl;  
  38. return 0;  

  • C++對象復制相關應用方式淺析
  • C++使用接口基本實現方式解析
  • C++左值與右值之間共同與不同點解析
  • C++模板參數具體概念講解
  • C++模板函數重載不同之處點評
上面的C++指針重載代碼有需要注意:

1):max(a, b)和max(s, t)調用的是同一個max模版函數。因為他們滿足第一個模版函數的定義,只是類型不一樣而已。

2):max(p1, p2)的調用有點玄乎。

3):max(s1, s2)會調用第三個非模版的max函數。不會使用第二個模版函數產生新的實例。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved