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

Sca*_*ark 11 c++ constructor reference

可能重复:
全局const字符串并且闻起来对我不好,它真的安全吗?

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

std::string const & thestring( "XYZ" );
Run Code Online (Sandbox Code Playgroud)

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

std::string const theString( "XYZ" );
Run Code Online (Sandbox Code Playgroud)

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

chi*_*uba 0

完全取决于函数所在字符串发生的情况。需要保存起来才能参考。

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

class yourClass {
    string a; 

    string const & yourFunction(string b) {
        a = b;
        return a;
    }
}
Run Code Online (Sandbox Code Playgroud)

另外,不太确定如果您直接返回“somestring”会发生什么,但是当您对 inparameters 执行类似的操作时,它的工作原理如下:

void test(const string& value);
Run Code Online (Sandbox Code Playgroud)

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


归档时间:

查看次数:

191 次

最近记录:

13 年,11 月 前