有这样的代码:改变返回值
#include <iostream>
#include <string>
int returnnumber() { return 2; }
std::string returntext() { return "siema"; }
int main() {
std::cout << (returntext() += "cze") << std::endl; // siemacze
//std::cout << (returnnumber() += 2) << std::endl; error: lvalue required as left operand of assignment
return 0;
}
为什么是有可能改变的std :: string的返回值,但不是int?
好吧,但对于'int',运算符'+ ='也被定义。 – Vlad
@downvoter:为什么? – Vlad
@anonymous downvoter:请解释你的downvote,以便其他人可以从你的洞察中受益,或忽略一些愚蠢的原因。 –