 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
| • |
Type
conversions will not help when operators are
|
|
|
members
-- because a member is required to have the first
|
|
|
operand
as an object of the class; if it converted to some
|
|
|
other
type, the member function will not be found as a
|
|
|
possible
candidate function and a compile error will result
|
|
|
or
the wrong operator will be used (such as the built-in
|
|
|
operators).
|
|
|
| • |
Also,
when user defined conversions to built-in types have
|
|
|
been
specified, the predefined operators may end up being
|
|
|
used
even when we use an operator with a user defined
|
|
|
type
for which an overloaded operator exists! Overloaded
|
|
|
operators
are only invoked if at least one of those operands
|
|
is a
user defined type.
|
|