有人能解释一下这个C++引用的用法吗

Can anyone explain this C++ reference usage

本文关键字:C++ 引用 用法 一下 能解释      更新时间:2023-10-16

可能重复:
全局常量字符串&闻起来很难闻,真的安全吗?

我偶然发现了以下代码,并想知道它的优点

std::string const & thestring( "XYZ" );

事实上,它正在构建对象,并通过引用来引用它。我看惯了

std::string const theString( "XYZ" );

想知道有什么不同。我很高兴该对象不会被提前销毁,因为该对象与引用一起存在于堆栈中。

完全取决于函数所在的字符串发生了什么。它需要保存才能被引用。

如果你在函数中有一个变量,比如说函数所属的对象。

class yourClass {
    string a; 
    string const & yourFunction(string b) {
        a = b;
        return a;
    }
}

此外,不太确定如果直接返回"somestring"会发生什么,但当你用inparameters做类似的事情时,它的工作原理是这样的:

void test(const string& value);

如果您随后传递"someString",它将不会作为引用处理,而只是一个值。如果删除"const",则会遇到问题,并且无法将"someString"作为值传递。