在这种情况下,&会做什么?

险恶MJ

我今天有以下代码:

std::vector<float>& vecHighRes = highRes->getSamples();

PMHighResolution.cpp / .h

std::vector<float>& getSamples();
static std::vector<float> fSamples;

std::vector<float>& PMHighResolution::getSamples()
{
    return fSamples;
}

为什么在那里需要&两次?在返回中,我认为是因为否则会生成要返回的向量的副本,但是为什么我需要在assign运算符中使用它(

std::vector<float>& vecHighRes = highRes->getSamples(); )?

juanchopanza

&在LHS意味着vecHighRes是一个参考:

std::vector<float>& vecHighRes = highRes->getSamples();

如果您省略了&vecHighRes则将是vector的副本,该副本是fSamples根据所返回的引用构造的getSamples

与此相同:

int a = 42;
int& b = a;  // b is a reference to a
int c = b;   // c is a copy of a

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在这种情况下,OptionsParser会做什么?

在这种情况下,CommandLineRunner会做什么?

::运算符在这种情况下会做什么

在这种情况下,Ext.Callback会做什么?

在这种情况下,UNPACK实用程序会做什么?

在这种情况下,C ++中的union会做什么?

self.new_with_session(params,session)在这种情况下会做什么

在这种情况下,update-grub和'modprobe efivars'程序会做什么?

在这种情况下,xargs到底能做什么?

.map()在这种情况下做什么?

在这种情况下,&操作正在做什么

在这种情况下,“反斜杠”在做什么?

在这种情况下,wait(null) 做什么?程序的输出是什么?

在这种情况下,“使用”正在做什么,正在存储什么?

在这种情况下,什么是“生成”?

在这种情况下python .get()方法在做什么?

在这种情况下[nil]到底在做什么(nil)

:: Java运算符在这种情况下做什么?

为什么在这种情况下需要引用/借用?

> =在这种情况下是什么意思

为什么在这种情况下转发参考无效?

在这种情况下,“重新加载”有什么作用?

什么是原型模式在这种情况下,利益

在这种情况下 res 是什么意思?

在这种情况下,语法[]是什么意思?

为什么在这种情况下Array的元素是可选的?

为什么std :: forward在这种情况下无用

为什么在这种情况下会有UnboundLocalError?

在这种情况下如何检查单击了什么按钮