假设我有一个任意对象String
。我想从函数中传回多个String
。我可以这样做吗?
bool f(String &s1, String &s2) {
if (worked) {
s1 = String("abc");
s2 = String("def");
return true;
} else {
return false;
}
}
这是否会导致内存损坏,因为我正在返回本地创建的对象?
答案 0 :(得分:4)
不,您没有返回本地创建的对象。显示的代码返回bool
值。
您正在做的是将对象分配给传递的引用。这也没有任何内在错误。
答案 1 :(得分:2)
不,这完全有效。将为指定的类型调用赋值运算符。 (String::operator=(const String &other)
或类似的)