|
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