St.*_*rio 3 c++ return function
这个话题几乎就是问题的标题.我在Meyrses的书"Effective C++"中看到了这个:
C++按值返回对象的事实
这意味着什么以及C++标准如何支持该消息?对于实例,请说我们有这样的事情:
int foo()
{
int a = 1;
return a;
}
Run Code Online (Sandbox Code Playgroud)
这很清楚,这个短语意味着我们返回存储在局部变量中的值的副本.但考虑一下:
int& foo()
{
int a = 1;
return a;
}
Run Code Online (Sandbox Code Playgroud)
编译器应警告我们返回对局部变量的引用.那个"按价值回归的事实"如何适用于这个例子?
Meyers在主要方面是正确的,但在处理参考文献时你必须用一点点盐来处理.在某个抽象级别,这里你通过"按值"传递引用本身.
但他真正想说的是,除此之外,C++默认情况下会按值传递,这与Java等语言形成鲜明对比,在Java中,对象总是被引用语法所取代.
事实上,人们可能会认为该段落根本不适用于您的代码,因为引用不是"对象".