【发布时间】:2023-03-10 16:54:01
【问题描述】:
这是一个基本问题,但我并不完全理解。 当我有这样的功能时:
string func(){
string result;
result = "resultString";
return result;
}
这样可以还是字符串结果只是一个局部变量(可以超出范围)?
如果可以,为什么?这是价值回报吗?
c++中哪些类型是按值返回的,按引用返回什么?
【问题讨论】:
-
Google for:RVO,移动语义并按值返回
-
你正在做的很好。在 C++ 中,一切都是按值返回的。
-
@LukePark 除了返回一个参考。
-
引用实际上是在返回时复制到内存中的,就像一个指针一样。 从技术上来说,你仍然在返回一个值。
-
@LukePark 它与 C++ 标准中指定的不同。它可能以与例如相同的方式实现。指针返回,但可能不会。例如,语义差异对于优化很重要。
标签: c++ string function return-value