Operater Overloading Using 'class' Keyword (OOP)-3

Posted on at


PROBLEM:

Add to the time class of Exercise 5 the ability to subtract two time values using theoverloaded (-) operator, and to multiply a time value by a number of type float, usingthe overloaded (*) operator.

PROGRM:

#include "stdafx.h"

#include "iostream"

using namespace std;

/////////////////////////////////////////////////////////////////////////////////////////

class time

{

            private:

                        inthrs, mints, secs;

            public:

                        time( ) :hrs(0), mints(0), secs(0)        

{ /*Empty Body*/ }

                        time(int h, int m, int s):hrs(h), mints(m), secs(s)

                                    { /*Empty Body*/ }

                        void display( ) const

                        {          

cout<<hrs<< ":" << mints << ":" <<secs<<endl;       

}

                        time operator - (time) const;              

time operator * (float) const;

};

//---------------------------------------------------------------------------------------

time time::operator - (time t2) const

{

            inthr, min, sec;

            if(hrs>= t2.hrs)

                        hr = hrs - t2.hrs;

            else

                        hr = t2.hrs - hrs;

            if(mints >= t2.mints)

                        min = mints - t2.mints;

            else

                        min = t2.mints - mints;

            if(min > 59)

            {

                        min -=60;

                        hr++;              

}

            if(secs>= t2.secs)

                        sec = secs - t2.secs;

            else

                        sec = t2.secs - secs;

            if(sec > 59)

            {

                        sec -=60;

                        min++;

            }

            return time(hr, min, sec);       

}

 

 

time time::operator * (float num) const

{

            inthr=hrs, min=mints, sec;

            sec=secs*num;

            if(sec > 59)

            {

                        sec -=60;

                        min++;

            }

            if(min > 59)

            {

                        min -=60;

                        hr++;

            }

            return time(hr, min, sec);

}

/////////////////////////////////////////////////////////////////////////////////////////

void main( )

{

            const time time1(10,25,2), time2(5,59,59);

            time time3,time4;

            cout<< "Time1 is: ";

                        time1.display( );

            cout<< "Time2 is: ";   

                        time2.display( );

            time3 = time1 - time2;

                        cout<< "Time3 is: ";   

                                    time3.display( );

            time4 = time1 * 32.14;                       

                        cout<< "Time4 is = Time1*32.14 = ";

                                    time4.display( );

            system("pause");

}

OUTPUT:

                            



About the author

MuhammadTayyab

Me from Pakistan and im the student of undergraduate;BS Electronics.

Subscribe 0
160