Unary Operator Overloading

download Unary Operator Overloading

of 9

Transcript of Unary Operator Overloading

  • 8/10/2019 Unary Operator Overloading

    1/9

    Unary Operator overloading

    #include

    using namespace std;

    //Increment and decrement overloading

    class Inc {

    private:

    int count ;

    public:

    Inc() {

    //Default constructor

    count = 0 ;

    }

    Inc(int C) {

    // Constructor with Argument

    count = C ;

    }

    Inc operator ++ () {

    // Operator Function Definition

    // for prefix

    return Inc(++count);

    }

  • 8/10/2019 Unary Operator Overloading

    2/9

    Inc operator ++ (int) {

    // Operator Function Definition

    // with dummy argument for postfix

    return Inc(count++);

    }

    Inc operator -- () {

    // Operator Function Definition

    // for prefix

    return Inc(--count);

    }

    Inc operator -- (int) {

    // Operator Function Definition

    // with dummy argument for postfix

    return Inc(count--);

    }

    void display(void) {

    cout

  • 8/10/2019 Unary Operator Overloading

    3/9

    cout

  • 8/10/2019 Unary Operator Overloading

    4/9

    cout

  • 8/10/2019 Unary Operator Overloading

    5/9

    int den; // denominator

    public:

    void show();

    Rational(int=1,int=1);

    void setnumden(int,int);

    Rational add(Rational object);

    Rational operator+(Rational object);

    bool operator==(Rational object);

    bool operator!=(Rational object);

    };

    void Rational::show() {

    cout

  • 8/10/2019 Unary Operator Overloading

    6/9

    b = a;

    a = temp;

    }

    while(a != 0 && b != 0) {

    if(a % b == 0)

    break;

    temp = a % b;

    a = b;

    b = temp;

    }

    num = x / b;

    den = y / b;

    }

    Rational Rational::add(Rational object) {

    int new_num = num * object.den + den * object.num;

    int new_den = den * object.den;

    return Rational(new_num, new_den);

    }

    Rational Rational::operator+(Rational object) {

    int new_num = num * object.den + den * object.num;

    int new_den = den * object.den;

    return Rational(new_num, new_den);

    }

  • 8/10/2019 Unary Operator Overloading

    7/9

    bool Rational::operator==(Rational object) {

    return (num == object.num && den == object.den);

    }

    bool Rational::operator!=(Rational object) {

    return (num != object.num || den != object.den);

    }

    int main() {

    Rational obj1(1,4), obj2(210,840), result1;

    result1 = obj1.add(obj2);

    result1.show();

    Rational obj3(1,3), obj4(33,99), result2;

    result2 = obj3 + obj4;

    result2.show();

    Rational obj5(10,14), obj6(25,35), obj7(2,3), obj8(1,2);

    if(obj5 == obj6) {

    cout

  • 8/10/2019 Unary Operator Overloading

    8/9

    }

    return 0;

    }

    Function Templates

    #include

    #include

    template

    void swap(t &x,t &y)

    {

    t temp=x;

    x=y;

    y=temp;

    }

    void fun(int a,int b,float c,float d)

    {

    cout

  • 8/10/2019 Unary Operator Overloading

    9/9

    }

    void main()

    {

    int a,b;

    float c,d;

    clrscr();

    couta>>b;

    coutc>>d;

    fun(a,b,c,d);

    getch();

    }