我知道在 C++ 中,您可以像函数一样重载运算符。与 C++ 中的函数一样,您必须指定返回值:
struct A {
int operator +();
};
在这里,我重载operator+
了一个返回int
. 但是我发现当我重载一个类型同时给它一个返回值时,我得到error: return type specified for 'operator int'
.
struct A {
void operator int() {} // error
};
但是,如果我拿走返回值,它就可以正常工作。
struct A {
operator int() {} // pass
};
该错误是否意味着通过int
在函数参数之前使用,我正在创建一个返回int
. 或者这是一些错误?如果我希望函数不返回值怎么办?有人可以解释为什么我会收到这个错误吗?谢谢。