我想超載一元/(部門)運營商。但它會導致錯誤。但是,當我嘗試重載+, - ,*運算符時,它工作正常。問題導致/爲操作員。我的代碼如下:如何超載一元/運算符?
#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;
}
沒有一元/運算符超載。另外,請不要這樣做。 +, - 和/不應修改操作數,並應返回一個新對象。 – chris 2015-04-03 19:21:35
'operator /()'不是一個一元運算符! – 2015-04-03 19:21:38
存在的操作符就是您所擁有的操作符,您不能更改操作符的語義含義(例如將二進制操作符變爲一元操作符)。 – 2015-04-03 19:22:54