Effective C++ 第4章24項
関数を呼び出すオブジェクト(thisの指し示すオブジェクト)が暗黙の型変換で生成されることはない。そのような場合にも暗黙の型変換を利用したいなら、その関数を非メンバ関数にしよう。
本に載っているサンプルコードではoperatorを使って暗黙の型変換が行われる場合、行われない場合の例をあげて解説している。
そういえば、自分は暗黙の型変換がどのような場合に行われるかはっきり分かっていない。それは多分、operatorを使ったコードをほとんど書いたことが無いからだろう。何か新しい型を作ってそれに対して演算を行うというコードはほとんど書いてない。ゲームを作っていて必要となる型といえばベクトルやマトリクス。それはゲーム用のライブラリには大抵用意されているので、わざわざ自分で作るようなことはしない。
とにかく、普段書いているコードでも暗黙の型変換が行われているかもしれないということを意識するようにしたい。