#include using namespace std; struct fraction { long int numerator; long int denominator; fraction(long int n, long int d){ numerator = n; denominator = d; } double decimal() const { if(denominator == 0) throw runtime_error("Divide by Zero"); return (double)numerator / denominator; } friend ostream& operator<< (ostream& output, const fraction& f){ try { double dec = f.decimal(); return output << f.numerator << "/" << f.denominator << " = " << dec; } catch (runtime_error e) { return output << f.numerator << "/" << f.denominator << " can't be divided"; } } }; int main(){ fraction half(1, 2); cout << half << endl; fraction quarter(1, 4); cout << quarter << endl; fraction nothing(1, 0); try { cout << nothing.decimal() << endl; } catch (runtime_error e) { cout << "Can't divide nothing\n"; } cout << nothing << endl; return 0; }