重载++和——操作符
来源:互联网 发布:霍尊唱功知乎 编辑:程序博客网 时间:2024/04/30 07:02
自增和自减运算符有前置和后置两种形式,每个重载运算符的函数都必须有明确的特征,使编译器确定要使用的版本。C++规定,前置形式重载为一元运算符函数,后置形式重载为二元运算符函数。
例如,设有类D的对象Dobject,其前置自增表达式和后置自增表达式说明如下:
(1)前置自增表达式
++Aobject ;
若用成员函数重载,则编译器解释为:
Aobject.operator++()
对应的函数原型是:
A& A::operator();
若用友元函数重载,则编译器解释为:
operator++( Aobject )
该函数对应的函数原型是:
friend A& operator++(A &);
(2) 后置自增表达式
Aobject++ ;
若用成员函数重载,则编译器解释为:
Aobject.operator++( 0 )
对应的函数原型是:
A& A::operator( int );
若用友元函数重载,则编译器解释为:
operator++( Aobject, 0 )
该函数对应的函数原型是:
friend A& operator++( A &, int );
在此,参数0是一个伪值,用于与前置形式重载相区别。另外,友元重载函数返回类类型的引用是为了减少函数返回时对象复制的开销,可以根据需要选择是否返回类类型的引用。
- 重载++和——操作符
- 重载操作符>> 和 <<
- 一般操作符重载和friend重载
- 不要重载&& ||和,操作符
- 算术操作符重载和关系操作符重载
- C++主题——重载操作符
- C++——操作符重载
- C++基础——操作符重载
- C++——操作符重载
- C++类—重载操作符
- C++运算符重载(11) - 重载<<和>>操作符
- 模板类中操作符重载问题("<<"和">>"重载)
- 模板类中操作符重载问题("<<"和">>"重载)
- C#——面向对象——重载操作符——装箱和拆箱
- 运算符重载之——输入和输出操作符
- 第十四章——调用操作符重载和函数对象的使用
- 赋值运算符和操作符重载
- 重载new 和 delete 操作符
- APP适配IOS8,iPhone6和Plus截图简要说明,有iP6截图下载供研究(原创)
- ORACLE编译失效对象小结
- vb.net 函数注释
- python source/working/home directory
- JMS
- 重载++和——操作符
- 顺治帝诗
- python中的各种拷贝
- 框架<frame>登录超时自动统一页面弹出解决方法
- if( 1 == x ) 比 if( x == 1 ) 哪个好
- 十二.健康检查模块功能(ngx_http_upstream_check_module)
- update tb set c=a+b
- oracle
- CSS实现div或ul,li水平对齐不换行