Operator overloading

 #include <iostream>

using namespace std;
class fraction
{
private:
    int num;
    int dnum;

public:
    fraction()
    {
        num = 0;
        dnum = 1;
    }
    void getdata()
    {
        cout << endl
             << "Enter the numerator: ";
        cin >> num;
        cout << "\nEnter the denominator: ";
        cin >> dnum;
    }
    void putdata()
    {
        cout << endl
             << num << endl;
        cout << "___";
        cout << endl
             << dnum;
    }
    fraction operator++();
    fraction operator++(int);
    fraction operator--();
    fraction operator-();
};

fraction fraction::operator++()
{
    fraction x;
    num = num + dnum;
    x.dnum = dnum;
    x.num = num;
    return (x);
}

fraction fraction ::operator++(int) // this is postfix incrementation
{
    fraction x;
    x.dnum = dnum;
    x.num = num;
    num = num + dnum;
    return (x);
}
fraction fraction::operator--()
{
    fraction x;
    num = num - dnum;
    x.dnum = dnum;
    x.num = num;
    return (x);
}
fraction fraction::operator-()
{
    fraction x;
    num = -num;
    x.dnum = dnum;
    x.num = num;
    return (x);
}
int main()
{
    fraction f1, f2;
    // f1.getdata();
    // f2 = ++f1;
    // cout << endl
    //      << "f2: " << endl;
    // f2.putdata();
    // cout << endl
    //      << endl
    //      << "f1: " << endl;
    // f1.putdata();
    // f1.getdata();
    // f2 = --f1;
    // cout << endl
    //      << "f2: " << endl;
    // f2.putdata();
    // cout << endl
    //      << endl
    //      << "f1: " << endl;
    // f1.putdata();
    f1.getdata();
    f1 = -f1;
    f1.putdata();
    return 0;
}

Comments

Popular Posts