10.14. Overloading the Function Call Operator ()
Overloading the function call operator () is powerful, because functions can take an arbitrary number of comma-separated parameters. In a customized
String class, for example, you could overload this operator to select a substring from a
String—the operator’s two integer parameters could specify the start location and the length of the substring to be selected. The
operator() function could check for such errors as a start location out of range or a negative substring length.
The overloaded function call operator must be a non-static member function and could be defined with the first line:
String String::operator()( size_t index, size_t length ) const
In this case, it should be a
const member ...