Example: An implementation of
+=
for strings. When concatenating strings, it is useful to know the length in advance so as to allocate memory only once.
String& String::operator+=( const String& rhs ) {
// … implementation … return *this; } String operator+( const String& lhs, const String& rhs ) { String temp;
// initially empty temp.Reserve( lhs.size() + rhs.size() );
// allocate enough memory return (temp += lhs) += rhs;
// append the strings and return }