ex6-6.cpp - Example 6-6 Operator overloading - overloading ^

// File: ex6-6.cpp

#include <iostream>
using namespace std;

class fraction
{
	 int numer, denom;
  public:
	 fraction(int = 0, int = 1);
	int get_numer() const { return numer; }
	int get_denom() const { return denom; }
	 void operator!(void) const;		// print the fraction
};

// member function definitions
fraction::fraction(int n, int d) : numer(n), denom(d) { }

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

fraction operator+(fraction f, fraction g) 
{
  return fraction(f.get_numer()*g.get_denom()+f.get_denom()*g.get_numer(),f.get_denom()*g.get_denom());
}

int main(void)
{
  fraction f(1,2);           // initialize fraction f & g
  fraction g(2,3);
  cout << "f+g ";  ! (f + g);
  cout << "f+5 "; !(f+3);
  cout << "5+f "; !(5+f);
  return 0;
}




CIS27: Programming in C++    Instructor: Joe Bentley