Skip to content

Instantly share code, notes, and snippets.

@ioanzicu
Created March 3, 2020 19:03
Show Gist options
  • Save ioanzicu/018671ba1c1abffa6513a38b5672e923 to your computer and use it in GitHub Desktop.
Save ioanzicu/018671ba1c1abffa6513a38b5672e923 to your computer and use it in GitHub Desktop.
// RationalNumbers.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
using namespace std;
class RationalNumber {
int numerator;
int denominator;
public:
// Constructor
RationalNumber(int p=1, int q=1) {
setNumerator(p);
setDenominator(q);
}
// Copy Constructor
RationalNumber(RationalNumber& r) {
numerator = r.numerator;
denominator = r.denominator;
}
// Accessors
void setNumerator(int p) { numerator = p; }
int getNumerator() { return numerator; }
void setDenominator(int q) {
if (q > 0)
denominator = q;
}
int getDenominator() { return denominator; }
// Overload + operator
friend RationalNumber operator+(RationalNumber &num1, RationalNumber &num2);
// Overload insertion (to display) operator
friend ostream & operator<<(ostream &out, RationalNumber &num);
};
RationalNumber operator+(RationalNumber& num1, RationalNumber& num2)
{
RationalNumber temp;
temp.numerator = (num1.numerator * num2.denominator) + (num2.numerator * num1.denominator);
temp.denominator = num1.denominator * num2.denominator;
return temp;
}
ostream& operator<<(ostream& out, RationalNumber& num)
{
cout << num.numerator << "\\" << num.denominator;
return out;
}
int main()
{
RationalNumber num1(3, 4), num2(2, 5), num3;
num3 = num1 + num2;
cout<<"Sum of "<<num1<<" and "<<num2<<" is "<<num3<<endl;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment