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. C++基本函数代码示例
  2. C++断点无效解决方案
  3. C++名字空间基本内容讲述
  4. C++中英文字符串基本概念解析
  5. C++连接SQL数据库分步骤进行
责任编辑:曹凯 来源: 博客园
相关推荐

2010-02-03 10:23:47

C++操作符重载

2009-08-18 18:06:54

C#操作符重载

2010-02-04 15:41:10

C++内存管理

2010-01-28 11:16:28

C++操作符

2009-08-18 17:42:12

C#操作符重载

2009-08-18 17:55:20

C#操作符重载

2010-01-27 11:00:17

C++操作符

2010-01-19 13:32:20

C++操作符

2009-07-14 18:34:22

Jython操作符重载

2010-01-21 09:53:23

C++操作符

2010-02-04 10:33:40

C++异常传递

2009-08-18 17:20:17

C#操作符重载

2009-08-18 17:34:25

C#操作符重载应用

2009-08-19 17:26:28

C# 操作符

2023-10-12 09:58:45

操作符C++

2010-02-04 10:13:35

C++获得系统时间

2020-06-17 12:22:44

C覆盖重载

2009-08-19 17:20:22

C# 操作符

2015-07-08 16:07:19

iOSObjective-C

2010-02-04 09:26:23

C++模板函数重载
点赞
收藏

51CTO技术栈公众号