我最近偶然发现了以下观察结果。 当重载操作数中的一元++运算符时,在运算符之前或之后,如下所示。
void operator++(int y)
{
x++;
}
或
void operator++()
{
x++;
}
但是当重载下标运算符时,操作数放在operator.Like
之间int &operator[](float i)
{
return x[int(i)];
}
请帮我得出结论。
答案 0 :(得分:0)
void operator++(int y)
是编译器用来区分此 postfix 运算符与前缀版本
的约定void operator++()
在这种情况下,y
只是一个虚拟变量,你可以保留名称,并将后缀定义为void operator++(int)
另一方面
int &operator[](float i)
是一个不同的运算符,此处float
用作实参(没有前缀/后缀operator[]
)。