C only Im using code lite editor as well 916 AM oooo Verizon
Solution
Please find the below class which can be overload mathematical operations on rational numbers.
Here , we explained with comments , how the flow is working in important places . please understnad and use the concepts for any other queries if required .
#include<stdio.h>   
 #include<iostream.h>
 #include<conio.h>
 class rational_number
 {
    int numerator1;   //numerator
    int denominator1;   //denominator
    public:
       void getdata()   //this function will use to get both values to makeup rational number
       {
           cout<<\"\  Enter the numerator value of the rational no.\";
           cin>>numerator1;
           cout<<\"\  Enter the denominator value of the rational no.\";
           cin>>denominator1;
    }
   
    //if we take an example value , numerator is 2, denominator is 3 , then the rational number will be 2/3
   
    void operator+(rational_number);   //declaration function to add 2 rational numbers by using overload concept
    void operator-(rational_number);   //declaration function to subtracting 2 rational numbers by using overload concept
    void operator*(rational_number);   //declaration function to multiply 2 rational numbers by using overload concept
    void operator/(rational_number);   //declaration function to devided 2 rational numbers by using overload concept
 };
 void rational_number ::operator+(rational_number c1)       //this is function definition for rational numbers addition
 {
    rational_number result1;               //temp is obeject of rational class, then we can access all variables and functions of rational class in this function definition
    result1.numerator1=(numerator1*c1.denominator1)+(c1.numerator1*denominator1);   //rational number are cross multiplying
    result1.denominator1=denominator1*c1.denominator1;          
    cout<<\"\  Rational number. after addition\";
    cout<<\"\  Numerator is =\"<<result1.numerator1;
    cout<<\"\  Denominator is =\"<<result1.denominator1;  
 }
 void raional_number ::operator -(rational_number c2)       //this is function definition for rational numbers subtraction
 {
    rational_number result2;
    result2.numerator1=(numerator1*c2.denominator1)-(c2.numerator1*denominator1);   //rational number are cross multiplying
    result2.denominator1=denominator1*c2.denominator1;
    cout<<\"\  rational no. after subtraction\";
    cout<<\"\  numerator is=\"<<result2.numerator1;
    cout<<\"\  denominator is =\"<<result2.denominator1;
 }
 void rational_number ::operator (rational_number c3)       //this is function definition for rational numbers multiply
 {
    rational_number result3;
    result3.numerator1=numerator1*c3.numerator1;
    result3.denominator1=denominator1*c3.denominator1;
    cout<<\"\  rational no. after multiplication\";
    cout<<\"\  numerator=\"<result3.numerator1;
    cout<<\"\  denominator =\"<< result3.denominator1;
 }
 void rational_number :: operator /(rational_number c1)   //this is function definition for rational numbers deviding
 {
    rational_number result4;
    result4.numerator1= numerator1*c1.denominator1;
    result4.denominator1=c1.numerator1*denominator1;
    cout<<\"\  rational no. after dividation\";
    cout<<\"\  numerator=\"<<result4.numerator1
    cout<<\"\  denominator =\"<<result4.denominator1;
 }
 void main()
 {
    clrscr();
    rational_number a1, a2;
    int ch;
    //we are using do while cocept, to give option for particular operation while running this program
    do
    {
        cout<<\"\  1. To Give Input for rational numbers. \";
        cout<<\"\  2. Addition of rational numbers. \";
        cout<<\"\  3. Subtraction of rational numbers. \";
        cout<<\"\  4. Multiplication of rational numbers.\";
        cout<<\"\  5. Division of rational numbers. \";
        cout<<\"\  6. Quit\";
        cout<<\"\  Enter your choice\";
        cin>>ch;   //will ask at runtime to enter choice (ch value)
        switch(ch) //specific case will execte based on entered value
        {
            case 1:
            cout<<endl<<\"\  enter the data for first rational number.\";
            a1.getdata();
            cout<<endl<<\"\  enter the data for second rational number. \";
            a2.getdata ();  
            clrscr();
            break;
            case 2;
            a1+a2;       //it will call to operator+(rational_number); , nothing but \"void rational_number ::operator+(rational_number c1)\"
            getch();
            clrscr();
            break;
            case 3;
            a1-a2;       //it will call to operator-(rational_number); , nothing but \"void rational_number ::operator-(rational_number c1)\"
            getch();
            clrscr();
            case 4:
            a1*a2;       //it will call to operator*(rational_number); , nothing but \"void rational_number ::operator(rational_number c1)\"
            getch();
            clrscr();
            break;
            case 5:
            a1/a2;       //it will call to operator/(rational_number); , nothing but \"void rational_number ::operator/(rational_number c1)\"
            getch();
            clrscr();
            break;
            case 6:   //this case to exit from the program
            exit(1);
            break;
        }
    } while (ch!=6); //program will not exit till we give 6 as choice
    getch(); //to wiat for our input (with any key) to come out from the running session
 }



