fractionType Class

My assignment is: Design a class fractionType that performs the arithmetic and
relational operations on fractions. Overload the arithmetic and relational
operators so that the appropriate symbols can be used to perform the
operation. Also, overload the stream insertion and stream extraction operators
for easy input and output.

I want to know if my function definition for operator+ and operator- are okay before I continue on. Also how would I define my operator() function if it is even needed at all?

header file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef fractionType_h
#define fractionType_h

#include <iostream>
using namespace std;

class fractionType
{
	friend ostream& operator<<(ostream&, const fractionType&);
	friend istream& operator>>(istream&, fractionType&);

private:

	int numerator, denominator;

public:

	void setFraction(const int& num, const int& den);
	int getNum() const;
	int getDen() const;
	fractionType(int num = 0, int den = 1);
	fractionType operator+(const fractionType& otherFraction) const;
	fractionType operator-(const fractionType& otherFraction) const;
	fractionType operator*(const fractionType& otherFraction) const;
	fractionType operator/(const fractionType& otherFraction) const;
	fractionType operator()(const fractionType& otherFraction) const;
};
#endif 


implementation file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include<iostream>
#include "fractionType.h"
using namespace std;

ostream& operator<<(ostream& osObject, const fractionType& fraction)
{
}

istream& operator>>(istream& isObject, fractionType& fraction)
{
}

void fractionType::setFraction(const int& num, const int& den)
{
	numerator = num;
	denominator = den;
	if (den == 0)
		cout << "Denominator cannot be 0!";
}

int fractionType::getNum() const
{
	return numerator;
}

int fractionType::getDen() const
{
	return denominator;
}

fractionType::fractionType(int num, int den)
{
	numerator = num;
	denominator = den;
	
}

fractionType fractionType::operator+(const fractionType& otherFraction) const
{
	fractionType temp;
	if (denominator == otherFraction.denominator)
	{
		temp.numerator = numerator + otherFraction.numerator;
		temp.denominator = denominator;
	}
	else
	{
		temp.numerator = numerator * otherFraction.numerator * denominator;
		temp.denominator = denominator * otherFraction.denominator;
	}
	return temp;
}

fractionType fractionType::operator-(const fractionType& otherFraction) const
{
	fractionType temp;
	if (denominator == otherFraction.denominator)
	{
		temp.numerator = numerator - otherFraction.numerator;
		temp.denominator = denominator;
	}
	else
	{
		temp.numerator = numerator * otherFraction.numerator * denominator;
		temp.denominator = denominator * otherFraction.denominator;
	}
	return temp;
}

fractionType fractionType::operator*(const fractionType& otherFraction) const
{
}

fractionType fractionType::operator/(const fractionType& otherFraction) const
{
}

fractionType fractionType::operator()(const fractionType& otherFraction) const
{
}
Topic archived. No new replies allowed.