オプジェクトをコピーしたくなかったので,以下のように参照渡し,参照戻しで演算子のオーバーロードをしようとしたのですが
「'const MyClass' から 'MyClass &' へ 'this' ポインタを変換できません。」とコンパイルエラーが出ます.
objを変更しているわけではないと思うのでなぜエラーになるのかよくわかりません.
このエラーはどういう意味なのでしょうか?
constと参照について
Re: constと参照について
const Tの参照なので,オブジェクト自体が変化しない,ということになります。
# const T &はconst T * constに近いイメージ。
const T型のオブジェクトのメンバ関数を呼び出すので,そのメンバ関数はconstメンバ関数である必要があります。のように。
さらに,戻り値の型もconst修飾が外れているので,
# const T &はconst T * constに近いイメージ。
const T型のオブジェクトのメンバ関数を呼び出すので,そのメンバ関数はconstメンバ関数である必要があります。のように。
さらに,戻り値の型もconst修飾が外れているので,
- 引数の型をMyClass &にする
- 戻り値をobj以外にする。operator =であれば,*thisを返すのが普通。