remove maps

This commit is contained in:
Jidong Xiao
2023-10-17 01:37:51 -04:00
parent 849d46e4ad
commit eda2a09332

View File

@@ -72,18 +72,17 @@ ostream& operator<< (ostream & ostr, Complex const& c) {
## 14.4 Operators as Non-Member Functions and as Member Functions ## 14.4 Operators as Non-Member Functions and as Member Functions
- We have already written our own operators, especially operator<, to sort objects stored in STL containers - We have already written our own operators, especially operator<, to sort objects stored in STL containers.
and to create our own keys for maps.
- We can write them as non-member functions (e.g., operator-). When implemented as a non-member function, - We can write them as non-member functions (e.g., operator-). When implemented as a non-member function,
the expression: z - w is translated by the compiler into the function call: operator- (z, w) the expression: z - w is translated by the compiler into the function call: operator- (z, w)
- We can also write them as member functions (e.g., operator+). When implemented as a member function, the - We can also write them as member functions (e.g., operator+). When implemented as a member function, the
expression: z + w is translated into: z.operator+ (w) expression: z + w is translated into: z.operator+ (w)
This shows that operator+ is a member function of z, since z appears on the left-hand side of the operator. This shows that operator+ is a member function of z, since z appears on the left-hand side of the operator.
Observe that the function has only one argument! Observe that the function has only one argument!
There are several important properties of the implementation of an operator as a member function: There are several important properties of the implementation of an operator as a member function:
It is within the scope of class Complex, so private member variables can be accessed directly. It is within the scope of class Complex, so private member variables can be accessed directly.
The member variables of z, whose member function is actually called, are referenced by directly by name. The member variables of z, whose member function is actually called, are referenced by directly by name.
The member variables of w are accessed through the parameter rhs. The member variables of w are accessed through the parameter rhs.
The member function is const, which means that z will not (and can not) be changed by the function. The member function is const, which means that z will not (and can not) be changed by the function.
- Also, since w will not be changed since the argument is also marked const. - Also, since w will not be changed since the argument is also marked const.
- Both operator+ and operator- return Complex objects, so both must call Complex constructors to create these - Both operator+ and operator- return Complex objects, so both must call Complex constructors to create these