从C ++中的引用获取值

问题描述 投票:1回答:2

我有一个问题要获取一个int的引用(从int的集合中,QList)。但是我需要该值来调用另一个使用按值调用的函数。

int my_var = collection[i];

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

如何从此引用中获取值或将其转换?

我要调用的函数的符号如下所示:

nextFunction(int id, ...);

及其实际上是一个构造函数。

c++
2个回答
0
投票

我认为您的问题不同于将参考转换为价值。即使一个函数使用按值调用方法,它也会很高兴地使用一个引用变量。我已经在Visual Studio上尝试过了,效果还不错。

在函数调用期间,编译器通常会对参数进行类型检查。我认为您应该查看collections [i]返回的值的类型。您的编译器错误表明存在类型不匹配。我认为这与按值调用和按引用调用无关。


0
投票

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

nextFunction(double& par);

将导致您的错误。

nextFunction(const double& par);

nextFunction(double par);

将导致自动转换。因此,如果您真的想在nextFunction内更改参数,则需要

nextFunction(int& par);
© www.soinside.com 2019 - 2024. All rights reserved.