任何人都可以解释这个C ++参考用法

时间:2012-03-08 10:09:48

标签: c++ reference constructor

  

可能重复:
  Global const string& smells bad to me, is it truly safe?

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

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

事实上,它正在构建对象并通过引用引用它。我以前常常看到

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

并且想知道差异是什么。我很高兴对象不会被早期破坏,因为对象与参考一起存在于堆栈中。

1 个答案:

答案 0 :(得分:0)

完全取决于函数所在字符串的内容。它需要保存才能被引用。

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

class yourClass {
    string a; 

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

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

void test(const string& value);

如果你然后传递“someString”,它将不会作为引用处理,只是一个值。如果删除“const”,您将遇到麻烦,并且无法将“someString”作为值传递。