C++ では、関数のように演算子をオーバーロードできることを理解しています。C++ の関数と同様に、戻り値を指定する必要があります。
struct A {
int operator +();
};
ここでoperator+は、 を返す関数としてオーバーロードしましたint。しかし、戻り値を与えながら型をオーバーロードすると、error: return type specified for 'operator int'.
struct A {
void operator int() {} // error
};
しかし、戻り値を取り除けばうまくいきます。
struct A {
operator int() {} // pass
};
intエラーは、関数パラメーターの前に を使用することで、 を返す関数を作成していることを意味しますかint? それともこれは何かの間違いですか?関数が値を返さないようにしたい場合はどうすればよいですか? このエラーが発生する理由を誰か説明してもらえますか? ありがとう。