重载二元运算符的右操作数是否可以是基本类型的对象?
答
重载二元运算符的至少一个操作数需要由用户定义。但他们不一定都是。
例如,一对合法的,但没用的定义:
enum class foo { bar };
void operator+(int, foo) {}
void operator*(foo, int) {}
以上,使1 + foo::bar
和foo::bar*2
有效表达式(什么也不做)。
你试过了吗?发生了什么? – DimChtz