Chapter12 -...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Viewing Hints  ] [  Exercise Solutions  ] [  Volume 2  ] [  Free Newsletter  ]  Seminars  ] [  Seminars on CD ROM  ] [  Consulting  ]  Thinking in C++, 2nd ed. Volume 1 ©2000 by Bruce Eckel Previous Chapter  ] [  Table of Contents  ] [  Index  ] [  Next Chapter  ]  12: Operator Overloading Operator overloading is just “syntactic sugar,” which means it is simply another way  for you to make a function call. The difference is that the arguments for this function don’t appear inside parentheses, but instead  they surround or are next to characters you’ve always thought of as immutable operators. There are two differences between the use of an operator and an ordinary function call. The syntax  is different; an operator is often “called” by placing it between or sometimes after the arguments.  The second difference is that the compiler determines which “function” to call. For instance, if you  are using the operator  +  with floating-point arguments, the compiler “calls” the function to perform  floating-point addition (this “call” is typically the act of inserting in-line code, or a floating-point- processor instruction). If you use operator  +  with a floating-point number and an integer, the  compiler “calls” a special function to turn the  int  into a  float , and then “calls” the floating-point  addition code. But in C++, it’s possible to define new operators that work with classes. This definition is just like  an ordinary function definition except that the name of the function consists of the keyword  operator  followed by the operator. That’s the only difference, and it becomes a function like any  other function, which the compiler calls when it sees the appropriate pattern. It’s tempting to become overenthusiastic with operator overloading. It’s a fun toy, at first. But  remember it’s  only  syntactic sugar, another way of calling a function. Looking at it this way, you  have no reason to overload an operator except if it will make the code involving your class easier to  write and especially easier to  read . (Remember, code is read much more than it is written.) If this  isn’t the case, don’t bother. Another common response to operator overloading is panic; suddenly, C operators have no familiar  meaning anymore. “Everything’s changed and all my C code will do different things!” This isn’t true. 
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
All the operators used in expressions that contain only built-in data types cannot be changed. You  can never overload operators such that 1 << 4; behaves differently, or
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 08/10/2011 for the course IT 331 taught by Professor Nevermind during the Spring '11 term at King Abdulaziz University.

Page1 / 50

Chapter12 -...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online