我有这个链接http://www.codingunit.com/unary-and-binary-operator-table。它说指向成员运算符的指针是二元运算符。
我有这段代码:
class test
{
public:
int num;
test(int j)
{
num=j;
}
test* operator->()
{
this->num;
}
};
int main()
{
test T(5);
cout<<"Number is :"<<T->num;
}
据我所知,二元运算符的非静态成员函数接受一个参数,但是根据这个程序,如果我提供一个参数。它有一个错误,表示 test * operator - &gt;(int x)应该是 test * operator - &gt;( void )
答案 0 :(得分:0)
要获得预期结果,您需要按如下方式更改程序:
test* operator->()
{
return this;
}
};
int main()
{
test T(5);
cout<<"Number is :"<<T->num;
}
在运算符重载函数中,应返回this
指针。由于->
的运算符重载函数不接受参数,因此当您调用它时,不需要传递参数值。所以函数调用应该是T->num;