What is the proper way to implement this class function when using pointers. I understand the basics of pointers, but it gets confusing. I'm trying to create a function that adds fractions.
f3 = f1->add(f2);
Everything else in the class is running correctly.
#include <iostream>
using namespace std;
//members of a class default to private
class Fraction
{
private:
int numerator;
int denominator;
public:
Fraction();
Fraction(int,int);
~Fraction();
Fraction* add(Fraction &f);
void setFraction(int, int);
int getNumerator();
int getDenominator();
};
Fraction::Fraction()
{
numerator = 0;
denominator = 0;
}
Fraction::Fraction(int num, int den)
{
this->numerator = num;
this ->denominator = den;
}
Fraction::~Fraction()
{
}
void Fraction::setFraction(int num, int den)
{
numerator = num;
denominator = den;
}
int Fraction::getNumerator()
{
return numerator;
}
int Fraction::getDenominator()
{
return denominator;
}
Fraction* Fraction::add(Fraction &f)
{
int num = f.numerator * this->denominator;
num += this->numerator *f.denominator;
int den = this->denominator * f.denominator;
return new Fraction(num,den);
}
int main() {
Fraction* f1 = new Fraction(5,8);
Fraction* f2 = new Fraction(1,8);
cout << f1->getNumerator() << "/" << f1->getDenominator() <<endl;
Fraction* f3 = new Fraction();
f3 = f1->add(f2);
return 0;
}
(Fraction &f)but you're passing a pointer by usingnewso you can change to dof3 = f1->add(Fraction(1,8))