程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++操作符重載不同方式區別

C++操作符重載不同方式區別

編輯:C++入門知識

C++編程語言可以被看做是C語言的升級版本,它能夠支持C語言中的所有功能,而且在其他方面也有很大的提升。其中,在C++操作符重載中++,--需要說明是++(--)在操作數前面,還是在操作數後面,區別如下:

C++操作符重載代碼經過測試無誤(起碼我這裡沒問題^_^)

  1. #include < iostream> 
  2. #include < cstdlib> 
  3. using namespace std;  
  4. template< typename T> class A  
  5. {  
  6. public:  
  7. A(): m_(0){  
  8. }  
  9. // +  
  10. const T operator + (const T& rhs)  
  11. {  
  12. // need to be repaired , but see it is only a demo  
  13. return (this->m_ + rhs);  
  14. }  
  15. // -  
  16. const T operator - (const T& rhs){  
  17. // need to be repaired , but see it is only a demo  
  18. return (this->m_ - rhs);  
  19. }  
  20. T getM(){  
  21. return m_;  
  22. }  
  23. // ++在前的模式,這裡返回的是引用 ,准許++++A  
  24. A& operator ++ (){  
  25. (this->m_)++;  
  26. return *this;  
  27. }  
  28. // ++ 在後,這裡返回的是一個新的A類型變量,且不可改變  
  29. // 目的是防止出現 A++++情況  
  30. const A operator ++(int a){  
  31. A< T> b = *this;  
  32. (this->m_)++;  
  33. return b;  
  34. }  
  35. private:  
  36. T m_;  
  37. };  
  38. int main(void){  
  39. int i = 0;  
  40. cout< < ++++i< < endl;  
  41. // i++++ is not allowed  
  42. A< int> a;  
  43. A< int> b = ++a;  
  44. cout< < b.getM()< < endl;  
  45. A< int> c = a++;  
  46. cout< < c.getM()< < endl;  
  47. cout< < a.getM()< < endl;  
  48. int t = a+2;  
  49. cout< < t< < endl;  
  50. system("pause");  
  51. return 0;   

以上就是對C++操作符重載的相關介紹。

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