In the member function version, the expression cents1 + 2
becomes function call cents1.operator+(2)
. Note that there is now only one explicit function parameter, and cents1 has become an object prefix. However, in lesson 13.10 -- The hidden “this” pointer, we mentioned that the compiler implicitly converts an object prefix into a hidden leftmost parameter named *this. So in actuality, cents1.operator+(2)
becomes operator+(¢s1, 2)
, which is almost identical to the friend version.
In the member function version, the expression cents1 + 2
becomes function call cents1.operator+(2)
. Note that there is now only one explicit function parameter, and cents1 has become an object prefix. However, in lesson 13.10 -- The hidden “this” pointer, we mentioned that the compiler implicitly converts an object prefix into a hidden leftmost parameter named *this. So in actuality, cents1.operator+(2)
becomes operator+(¢s1, 2)
, which is almost identical to the friend version.
Encoded ampersand: &
Normal ampersand: &
Encoded entity: ¢s
Normal entity: ¢s
Test1