Question: I have a code here that is all but worked out but I'm having issues with this compiler error in c++ function 'function' already has

I have a code here that is all but worked out but I'm having issues with this compiler error in c++

"function 'function' already has a body

The function has already been defined."

#include

#include

#include"Fraction.h"

using namespace std;

// private member function to calculate

// gcd, to help reducing the Fraction to

// simplest term

int Fraction::GCD(int n, int d)

{

int result;

if (n % d == 0)

result = d;

else

result = GCD(d, n % d);

return result;

}

// default constructor

Fraction::Fraction()

{

numerator = 0;

denominator = 1;

}

// parameterized constructor

// to initialize the fraction with user defined

// numerator and denominator

Fraction::Fraction(int n, int d)

{

// checking whether denominator is not 0

if (d != 0)

{

// reducing the numbers

int gcd = GCD(n, d);

setNumerator(n / gcd);

setDenominator(d / gcd);

}

// else make the fraction as 0

else

{

numerator = 0;

denominator = 1;

}

}

// setting the numerator

void Fraction::setNumerator(int n)

{

numerator = n;

}

// setting the denominator

void Fraction::setDenominator(int d)

{

denominator = d;

}

// returning the numerator

int Fraction::getNumerator()

{

return numerator;

}

// returning the denominator

int Fraction::getDenominator(){

return denominator;

}

// overloaded addition operator

Fraction Fraction::operator +(Fraction f)

{

int newNumer = (numerator * f.getDenominator() + denominator * f.getNumerator());

int newDenom = (denominator * f.getDenominator());

Fraction result(newNumer, newDenom);

return result;

}

// overloaded subtraction operator

Fraction Fraction::operator -(Fraction f)

{

int newNumer = (numerator * f.getDenominator() - denominator * f.getNumerator());

int newDenom = (denominator * f.getDenominator());

Fraction result(newNumer, newDenom);

return result;

}

// overloaded multiplication operator

Fraction Fraction::operator *(Fraction f)

{

int newNumer = numerator * f.getNumerator();

int newDenom = denominator * f.getDenominator();

Fraction result(newNumer, newDenom);

return result;

}

// overloaded division operator

Fraction Fraction::operator /(Fraction f)

{

int newNumer = (numerator * f.getDenominator());

int newDenom = (denominator * f.getNumerator());

Fraction result(newNumer, newDenom);

return result;

}

// overloaded extraction operator for cout

ostream& operator <<(ostream& out, const Fraction& f)

{

Fraction newF = f;

if (f.numerator < 0 && f.denominator > 0)

{

newF.setNumerator(newF.numerator * -1);

out << "-" << newF.numerator << "/" << newF.denominator;

}

else if (f.numerator > 0 && f.denominator < 0)

{

newF.setDenominator(newF.denominator * -1);

out << "-" << newF.numerator << "/" << newF.denominator;

}

else

{

out << f.numerator << "/" << f.denominator;

}

return out;

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!