gpt4 book ai didi

c++ - 使用返回引用的函数将变量声明为引用

转载 作者:搜寻专家 更新时间:2023-10-31 00:39:04 27 4
gpt4 key购买 nike

我有一个简单的功能:

vector<float>& myFunction() {
//> Do something and return a vector<float> (don't worry about scoping now )
}

现在其他地方的区别在于:

vector<float>& myNewVar = myfunction();
^

对比

vector<float> myNewVar = myfunction();  //> Without reference

第二个例子不就等同于这种情况吗:

void myFunction(vector<float>& outVector) {
//> some code
}

vector<float> myVect;
myFunction(myVect);

最佳答案

在这个版本中

vector<float>& myNewVar = myfunction();

myNewVar是对任何 myfunction()引用返回对的引用。

在这一个

vector<float> myNewVar = myfunction();

myNewVar是任何 myfunction()拷贝返回对的引用。它将引用作为 std::vector<float> 的输入的复制构造函数。

也许没有函数可以更好地说明这一点:

int i = 42;

// I want a referennce, so I create one
int& j = i;

// I want a copy, so I make one, even though j is a reference.
// j is just an alias for i, so k really is a copy of i.
int k = j;

关于c++ - 使用返回引用的函数将变量声明为引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16958888/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com