954,500 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

about operator overloading

can anybody pls tell me the full examples of address operator overloading,assignment operator overloading stream insertion operator overloading and stream extraction operator overloading?

gaggu82
Newbie Poster
4 posts since Aug 2007
Reputation Points: 10
Solved Threads: 0
 

They all are coded the same way, pick one and you have all the others, just change the operator

int operator=(<parameter list here>)
{
  // blabla
}
Ancient Dragon
Retired & Loving It
Team Colleague
30,049 posts since Aug 2005
Reputation Points: 5,662
Solved Threads: 2,343
 

the full +=, = and + operators overloading examples:

class str
{
    char * data;
    int length;

    public:

        str ( const char * _data )
        {
            length = strlen ( _data );

            data = new char[ length + 1 ];
            strcpy ( data, _data );
        }

        ~str ()
        {
            delete [] data;
        }

        str operator + ( const str & );
        void operator += ( const str & );
        void operator = ( str );
};

str str::operator + ( const str & s )
{
    str s0 ( data );
    s0 += s;

    return s0;
}

void str::operator += ( const str & s )
{
    if ( s.length > 0 )
    {
        char * buf = new char [ length + 1 ];

        strcpy ( buf, data );

        delete [] data;
        data = new char [ length + s.length + 1 ];

        strcpy ( data, buf );
        strcat ( data, s.data );

        length = length + s.length;

        delete [] buf;
    }
}

void str::operator = ( str s )
{
    if ( s.length > 0 )
    {
        delete [] data;
        data = new char[ s.length + 1 ];
        strcpy ( data, s.data );

        length = s.length;
    }
}
cerf_machine
Newbie Poster
8 posts since Oct 2007
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You