revision of OOP Basic Concepts

 // A whole code for the revision of OOP Basic Concepts



#include <iostream>

using namespace std;

class Fraction

{

private:

double Numer;

double Denomi;

char* Institute;

static int count;

public:


Fraction() //Default constructor

{

count++;

Numer = 0.0;

Denomi = 0.0;

Institute = nullptr;

}

Fraction(double Nu, double De, char* in, static int cnt)   //Prameterized Constructor

{

Numer = Nu;

Denomi = De;

count = cnt;


int size = strlen(in); //For char pointer

Institute = new char[size + 1];

for (int a = 0; a < size; a++)

{

Institute[a] = in[a];

}

Institute[size] = '\0';

}


/* Fraction(Fraction& temp) //Copy Constructor

{

Numer = temp.Numer;

Denomi = temp.Denomi;

Institute = temp.Institute;

}

*/

void SetNumer(double Nu) //Setters

{

count++;

Numer = Nu;

}

void SetDenomi(double De)

{

count++;

Denomi = De;

}

void SetInstitute(char* in) //Setter for character pointer

{

count++;

int size = strlen(in); //For char pointer

Institute = new char[size + 1];

for (int a = 0; a < size; a++)

{

Institute[a] = in[a];

}

Institute[size] = '\0';

}


void SetCount(int cnt)

{

count = cnt;

}


double GetNumer() //Getters

{

return Numer;

}

double GetDenomi()

{

return Denomi;

}

int GetCount()

{

return count;

}


char* GetInstitute()

{

return Institute;

}



Fraction operator * (Fraction f) // Arithmatic Overloading (Multiplication)

{

Fraction temp;

temp.Numer = Numer * f.Numer;

temp.Denomi = Denomi * f.Denomi;

return temp;


}


Fraction operator / (Fraction f) // Arithmatic Operator Overloading (Division)

{

Fraction temp;

temp.Numer = Numer / f.Numer;

temp.Denomi = Denomi / f.Denomi;

return temp;

}

bool operator == (Fraction& x) // equal to operator overloading

{

if (Numer == x.Numer && Denomi==x.Denomi )

{

return true;

}

else

{

return false;

}

}


void Display()const //Display

{

cout << "Denomirator is: " << Denomi << endl;

cout << "Numerator is: " << Numer << endl;

}



~Fraction() //Destructor

{

count--;

delete [] Institute;

}

};

int Fraction::count = 0;


int main()

{

Fraction obj1, obj2;

obj1.SetNumer(5.5);

obj1.SetDenomi(3.7);


obj2.SetNumer(6.5);

obj2.SetDenomi(4.7);


cout << "\nTotal count of objects in class ";

Fraction GetCount();



Fraction obj3 = obj1 * obj2;

cout << "\t << Multiplication of Complex Numbers >>\n";

obj3.Display();


Fraction obj4 = obj1 / obj2;

cout << "\t\n << Division of Complex Numbers >>\n";

obj4.Display();









cout << "\n\t<< Equality of Both Complex Numbers >>\n";

if (obj1 == obj2) // Only for equal to operator

{

cout << "Numer and denomi are equal \n";

}

else

{

cout << "Numer and Denomi are not equal \n";

}


return 0;


}



Post a Comment

0 Comments