我正在尝试重载一元/(除法)运算符。但它会导致错误。但是,当我尝试重载+, - ,*运算符时,它工作正常。问题导致/运营商。我的代码如下:
#include<bits/stdc++.h>
using namespace std;
class Box
{
int x,y;
public:
void GetData(int a,int b)
{
x=a;y=b;
}
void Display()
{
cout<<x<<" "<<y;
}
void operator /();
};
void Box::operator /()
{
x/=2;
y/=2;
}
int main()
{
Box b;
b.GetData(10,20);
// I am getting error in the following line.
/b;
b.Display();
return 0;
}
答案 0 :(得分:4)
没有一元/
运算符这样的东西。 /
运算符需要两个操作数。
请注意,仅仅因为两个运算符使用相同的符号,并不意味着它们代表相同的操作。二进制(在2的arity中)-
是减法,而一元-
是否定的。二进制*
是乘法,而一元*
是间接的。因此,虽然二元/
是除法,但一元/
是没有意义的。