|
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