Итак, у меня есть класс, который реализовал дроби. Я должен добавить catch & throw к конструктору (в случае, если знаменатель равен нулю) и к перегруженному оператору деления (в случае деления на ноль). Как мне это понять? Но мне нужно перехватить блок над этим конструктором, потому что мне нужно прекратить создание этого объекта.
class Rational{
public:
Rational(const int num, const int den){
try{
numerator = num;
denominator = den;
if( denominator == 0){
throw invalid_argument(" den is zero ")
}
}
catch (invalid_argument& e){
cout << e.what() << endl;
}
}
// I mean I want smth like that
try {
Rational operator/(const Rational& lhs, const Rational& rhs) {
return Rational{ lhs.Numerator() * rhs.Denominator(), lhs.Denominator() * rhs.Numerator() };
if (rhs.Numerator() == 0) {
throw domain_error("dividing by zero");
}
}
}
catch (const domain_error& e) {
cout << e.what();
}