我有以下运算符重载原型:
ostream& operator<<(ostream & outputstream, my_arr& arr)
my_arr operator+(const my_arr& left, const my_arr& right)
我打电话:
cout << (arr1 + arr2);
这给了我以下编译器错误:
error: no match for ‘operator<<’ in ‘std::cout << operator+(const my_array&, const my_array&)((*(const my_array*)(& y)))’
如果我将 << 的签名更改为以下内容,这就会消失:
ostream& operator<<(ostream & outputstream, const my_arr& arr)
我可能在这里遗漏了一些基本的东西,但为什么会发生这种情况?谢谢你的帮助。