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
? それともこれは何かの間違いですか?関数が値を返さないようにしたい場合はどうすればよいですか? このエラーが発生する理由を誰か説明してもらえますか? ありがとう。