私は、オーバーロードされた - =演算子を持つ境界矩形を表すクラスを持っており、両方の矩形の交差を取得します。何の交差点がありません場合は、私はエラーをスロー:例外と演算子のオーバーロード
if(/* no intersection */)
{
throw std::runtime_error("No intersection between rectangles");
}
私の質問です:私は-=
が、私はその中のtry/catchを使用する必要があります使用して-
オペレータを実装する場合は?
は、私がこれを行う必要があります。
operator-(rect1, rect2)
{
try
{
rect1 -= rect2;
}
catch(std::exception &e)
{
...
}
return rect1;
}
またはこの
operator-(rect1, rect2)
{
rect1 -= rect2;
return rect1;
}
はなぜ空の交差点は例外だろうか? – ZDF
Beacuse交差点がないことを何らかの方法で伝える必要があります – Domnyk
' - =' "矩形の交差を取得するのはなぜですか?"オペレータの過負荷に注意してください。 https://en.wikipedia.org/wiki/Principle_of_least_astonishment –