Overloading operator "<<"

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Sunny

    #1

    Overloading operator "<<"

    The way to overload operator << is : ostream& operator << (ostream&
    os, const Obj& obj);
    and this is a member function.
    My question is why do we need to provide a const reference of Obj as
    argument when it is a member function and its members accessible
    through this pointer ?
    Isnt cout << obj;
    equivalent to obj.operator<<( cout) ?
    Thanks

  • Robert Bauck Hamar

    #2
    Re: Overloading operator &quot;&lt;&lt;& quot;

    Sunny wrote:
    The way to overload operator << is : ostream& operator << (ostream&
    os, const Obj& obj);
    Yes
    and this is a member function.
    No
    My question is why do we need to provide a const reference of Obj as
    argument when it is a member function and its members accessible
    through this pointer ?
    It's not a member of Obj.
    Isnt cout << obj;
    equivalent to obj.operator<<( cout) ?
    No, it is equivalent to either of

    cout.operator<< (obj);
    operator<<(cout , obj);

    --
    Robert Bauck Hamar
    Semikolon markerer en litt kortere pause enn punktum; det kan bare
    stå mellom selvstendige setninger. Det er en moderne uskikk å bruke
    semikolon istedenfor kolon. Følg ikke den uskikken!

    Comment

    Working...