c++重载运算符 重载运算符前置与后置的区别,求详细介绍?
浏览量:2140
时间:2021-03-12 02:34:30
作者:admin
重载运算符前置与后置的区别,求详细介绍?
这里我们只讨论作为成员函数重载的情况。假设类A的重载函数是预加载和后加载的,重载函数的一般形式应该如下:classA& classA::operator()//预加载{itsval return*this}constClassAClassa::operator(int)//后加载{classatemp(*this)itsval有几个方面可以研究:1>要区分前置运算符和后置运算符,需要将参数“int”添加到后置运算符重载函数中,尽管此类型除了显示差异外不表示任何实际意义;
2>前置运算符返回变量引用,后置运算符返回常量。所以C是合法的,但C不是,这可以通过使用VC6.0和DEVC中的基本数据类型操作来验证;
3>为什么不让C合法呢?如果要实现C方法,必须使后置返回变量或变量引用。C首先返回C的值,然后返回1,因此不可能返回C,因此我们只能创建一个局部变量来保存C的初始值,然后返回局部变量(局部变量不允许返回引用)。但是,在返回局部变量后,如果进行下一步操作,则局部变量的值将被卷入操作中,因此此时,C实际上等价于C没有存在的意义。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。