次の演算子オーバーロード プロトタイプがあります。
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)
ここで何か基本的なことが欠けているかもしれませんが、なぜこれが起こるのでしょうか? ご協力いただきありがとうございます。