Define a class Pairs with two integer data members, f and s, where f represents

the first value in the ordered pair and s represents the second value in an ordered

pair. Objects of type Pairs can be used in any situation where ordered pairs are

needed. This class has:

The class should contain a default constructor that initializes both data members to

0, and two overloaded constructors, one with one int parameter and the other with

two int parameters. The one-parameter constructor should initialise the first

member of the pair; the second member of the pair is to be 0. The two-parameter

constructor should initialise both members of the ordered pair.

The class should also contain a destructor that outputs the message "Goodbye!"

Include accessor functions that return the values stored in each of the member

variables of an object of class Pairs (i.e. get functions), as well as mutator

functions to update each of the member variables of an object of class Pairs

respectively (i.e. set functions with a parameter to set each member variable to a

value specified by the parameter). The class should also contain a void member

function called reset() that resets the member variables of a Pairs to values

specified by parameters.

Overload the stream extraction operator >> and the stream insertion operator << as

friend functions so that objects of class Pairs are to be input and output in the

form (5,6) (5,-4) (-5,4) or (-5,-6).

Overload binary operator + as a friend function to add pairs according to the rule

(a,b) + (c,d) = (a + c, b + d)

Overload operator – as a friend function in the same way, i.e. according to the rule

(a,b) - (c,d) = (a - c, b - d)

Overload operator * as a friend function on Pairs and int according to the rule

(a,b) * c = (a * c, b * c)

Write a program to test all the member functions and overloaded operators in your

class definition.