`Rational`

for
performing arithmetic with fractions. Write a driver program to test
your class. Use integer variables to represent
the private data of the class - the numerator and
the denominator. Provide a constructor function that enables
an object of this class to be initialize when it is declared.
The constructor should contain default values in case no initializers
are provided and should store the fraction in reduced form
(i.e., the fraction 2/4 would be stored in the object as 1
in the numerator and 2 in the denominator). Provide public member
functions for each of the following:
- Addition of two
`Rational`

numbers/ The result should be stored in reduced form. - Subtraction of two
`Rational`

numbers. The results hould be stored in reduced form. - Multiplication of two
`Rational`

numbers. The result should be stored in reduced form. - Division of two
`Rational`

numbers. The result should be stored in reduced form. - Printing
`Rational`

numbers in the form`a/b`

wjere`a`

is the numerator and`b`

is the denominator. - Printing
`Rational`

numbers in floating point format.

`static`

.
It is implemented as one copy of the element, and all other objects
of the class just have a pointer to this copy. Find the error(s)
in each of the following and explain how to correct it.
a) class Example { public: Example(int y = 10) {data = y;} int getIncrementedData() const {return ++data;} static int getCount() { cout << "Data is " << data << endl; return count; } private: int data; static int count; } b) char *string; string = new char[20]; free(string);

` IntegerSet `

Each object of the
class can hold integers in the range 0 through 100.
a set is represented internally as an array of ones and zeros. Array
element ` a[i]`

is 1 if
integer `a[j]`

is 0 if integer
Provide member functions for the common set operations.
For example, provide a `unionOfIntegerSets`

member
function that creates a third set which is the set-theoretic
union of two existing sets (i.e., an element of the third set's array is set
to 1 if that element is 1 in either or both of the existing sets,
and an element of the third set's array is set to 0
if that element is 0 in each of the existing sets.)

Provide an `intersectionOfIntegerSets`

member function that creates a third set which is the
set-theoretic intersection of two existing sets i.e., an
element of the third set's array is set to 0 if that element is
0 in either or both of the existing sets, and an element
of the third set's array is set to 1 if that element is 1
in each of the existing sets).

Provide an `insertElement`

member function
that inserts a new integer *k* into
a set (by setting `a[k]`

to 1).
Provide a `deleteElement`

member function that
deletes integer *m* (by setting `a[m]`

to 0).

Provide a `settPrint`

member function
that prints a set as a list of numbers separated by spaces.
Print only those elements that are present in the set.
Print --- for an empty set.

Provide an `isEqualTo`

member function that
determines if two sets are equal.

Provide an additional constructor to take five integer arguments which can be used to initialize a set object. If you want to provide fewer than five elements in the set, use default arguments of -1 for the others.

`String`

.
Overload operators to compare
strings (`<, <=, >, >= , ==, !=`

).
Create a copy constructor, a conversion constructor that
converts ` char * `

to ` String `

,
and destructor. Define input and output operations.
Define an assignment ooperator.

Define a concatenation operator `+=`

which takes two arguments and
concatenates the second `String`

object to
the right of the first `String`

object, thus
modifying the first `String`

object. In some
applications, it is desirable to produce a
concatenated `String`

object without
modifying the two `String`

arguments.
Implement `operator+`

to allow operations such as

string1 = string2 + string3