Thread: overloaded operators

  1. #1
    Registered User
    Join Date
    Oct 2012

    overloaded operators

    what is difference in these two codes as they are giving different outputs..??
    circle operator=(circle c)
    circle t;
    return t;
    circle operator=(circle c)
    return circle(radius,x,y);

  2. #2
    Registered User
    Join Date
    Jun 2005
    I am assuming both of those function definitions are within the definition for class circle. Otherwise, both samples will give a compilation error.

    Given an expression "lhs = rhs;" (where lhs and rhs are both of type circle) the first version does not change lhs. The second one does.

    Conventionally, assignment operators accept an argument that is a const reference, and return a reference. Rather than (as in both your cases) accepting an argument by value and returning a value.

    Conceptually, you are missing the fact that assignment operators are member functions, with an implied "this" pointer.
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Using overloaded operators
    By Niels_M in forum C++ Programming
    Replies: 2
    Last Post: 11-09-2010, 07:16 AM
  2. Overloaded operators
    By Kayoss in forum C++ Programming
    Replies: 6
    Last Post: 04-17-2006, 02:23 PM
  3. overloaded operators
    By jccharl in forum C++ Programming
    Replies: 2
    Last Post: 03-14-2004, 06:14 PM
  4. overloaded operators
    By ivandn in forum C++ Programming
    Replies: 2
    Last Post: 12-20-2001, 03:52 PM
  5. help with overloaded operators
    By doleman19 in forum C++ Programming
    Replies: 23
    Last Post: 10-23-2001, 02:40 AM