ex6-4.cpp - Example 6-4 Operator overloading - fraction class with friend operator+

// File: ex6-4.cpp

#include <iostream>
using namespace std;

class fraction
{
  private:
	 int numer, denom;
  public:
    fraction(int n = 0, int d = 1);
	 void operator!(void) const;
  friend	fraction operator+(const fraction&,const fraction&);
};

fraction::fraction(int n, int d)
{
  numer = n;
  denom = d;
}

void fraction::operator!(void) const
{
  cout << numer << '/' << denom << endl;
}

// fraction friend function
fraction operator+(const fraction& f1,const fraction& f2)
{
  fraction temp(f1.numer * f2.denom + f2.numer * f1.denom,f1.denom * f2.denom);
  return temp;
}

int main(void)
{
  fraction f(3,4);
  fraction g(2,3);
  fraction h = f + g;
  !f;
  !g;
  !h;
  return 0;
}



CIS27: Programming in C++    Instructor: Joe Bentley