从C ++中的引用中获取值

时间:2013-01-04 06:21:21

标签: c++

我有一个问题是获取对int的引用(来自一组int,QList)。但我需要调用另一个使用call-by-value的函数的值。

int my_var = collection[i];

nextFunction(my_var); --> ERROR no matching function ... (int&) ...

如何从此引用获取值或转换它?

我要调用的函数的签名如下所示:

nextFunction(int id, ...);

它实际上是一个构造函数。

2 个答案:

答案 0 :(得分:1)

如果您只想将值传递给nextFunction,则需要在方法中添加一个const

nextFunction(double& par);

会导致您的错误。

nextFunction(const double& par);

nextFunction(double par);

会导致自动转换。 所以,如果你真的希望在nextFunction中更改par,你需要

nextFunction(int& par);

答案 1 :(得分:0)

我认为您的问题不同于将引用转换为值。即使函数使用按值调用方法,它也会很乐意使用引用变量。我在visual studio上试过这个并且工作正常。

在函数调用期间,编译器通常会对params进行类型检查。我想你应该看看集合[i]返回的值的类型。 您的编译器错误表明存在类型不匹配。我不认为它与按值调用和通过引用调用有任何关系。