请教一个重载问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 16:58:07
#include <iostream.h>
class autominus
{
float x;
public:
autominus()
{
x=0;
}
autominus(float i)
{
x=i;
}
void operator--()
{
--x;
}
void operator--(int)
{
x-=2;
}
void show()
{
cout < <"x=" < <x < <" ";
}

};
void main()
{
autominus p(6);
p.show();
--p;
p.show();
p--;
p.show();
}
帮忙分析一个--重载 .

这个程序show了一下操作符重载的一个细节处理:
对于 -- 和 ++ 这样的操作符,由于存在 x-- 和 --x 两种形式,因此其重载成员函数的声明需要加以区别

operator --(void)
对应 --x

operator --(int)
对应 x--

没有其他特殊意义,只是参数不同产生的函数原型不同,便于区别而已

这个跟java有关系吗?