string& operator+= (const string& str);
当我们查看函数原型时,我们假设传递给函数的字符串不会改变,对吧?
但是,请考虑以下情况:
string str("Example");
str += str;
实际上,字符串“str”已更改。这样的场景是不是很奇怪?
将原型更改为更好吗?
string& operator+= (string& str);
我已经搜索了很多这样的来源和例子,但对大多数人来说似乎很正常。没有人问这个问题,或者可能是我没有找到。(对不起,如果这是我的问题,对于非母语人士来说很难找到合适的关键字)