码迷,mamicode.com
首页 > 其他好文 > 详细

增量操作符的重载

时间:2015-12-29 16:10:46      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

      ++增量互有前增量和后增量区别,重载操作符时,虽然函数名相同,但是应有相应的区别.对于一个整型变量前增量操作符的结果与返回值变量是一致的,而后增量操作符返回的是一个临时变量。于是在增量操作符重载时也需要有前增量与后增量的区分。

   前增量操作对象与返回对象是同一个变量,在反应对象的前增量操作时,要求参数为对象的引用,返回值也是对象的引用:

className& operator++() ;//前增量操作符设置为类成员函数

 friend className& operator++(className&a) ;//前增量符作符设置为类友元函数。

而后增量符同样要求参数为引用,因为在调用上下中实参发生啦改变,但是为了与前增量符有所区别,C++提供了一个技术处理:

  className operator++(int ) ;//后量操作符设置为类成员函数

 friend className operator++(className &a,int i);  //友元函数,调用后增量符违背了函数参数匹配的常规,但是编译器专门做了特殊处理。

     对于流操作符。由于流操作符前置对象参数为ostream&out,它不是该类的对象,所以不可以设置为类的成员函数,必须设置为友元函数,友元函数不是类的成员函数,但是他的特殊之处在于他可以访问类的私有成员。所以有关流的操作符重载必须声明为友元函数,如 friend ostream& operator(className&a);

 

增量操作符的重载

标签:

原文地址:http://www.cnblogs.com/td15980891505/p/5085777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!