すみません。#2 の説明は間違っていました。
クラスの定義の仕方により、
o1 + o2 = o3; がエラーにならないようにもできます。
コード:
#include <iostream>
class myclass {
int v;
public:
myclass(int x = 0) : v(x) {}
operator int() const { return v; }
myclass& operator=(myclass& x) { v = x.v; return *this; }
myclass operator+(const myclass& x) const { return myclass(v + x.v); }
};
int main()
{
myclass o1(3), o2(5), o3(7);
o1 + o2 = o3;
std::cout << o1 << " " << o2 << " " << o3 << "\n";
}
operator+ の定義が見たいので、
エラーが出たというソース全体を提示してもらえますか?