我有一个问题要获取一个int的引用(从int的集合中,QList)。但是我需要该值来调用另一个使用按值调用的函数。
int my_var = collection[i];
nextFunction(my_var); --> ERROR no matching function ... (int&) ...
如何从此引用中获取值或将其转换?
我要调用的函数的符号如下所示:
nextFunction(int id, ...);
及其实际上是一个构造函数。
我认为您的问题不同于将参考转换为价值。即使一个函数使用按值调用方法,它也会很高兴地使用一个引用变量。我已经在Visual Studio上尝试过了,效果还不错。
在函数调用期间,编译器通常会对参数进行类型检查。我认为您应该查看collections [i]返回的值的类型。您的编译器错误表明存在类型不匹配。我认为这与按值调用和按引用调用无关。
如果只想将值传递给nextFunction,则需要在方法中添加一个const
nextFunction(double& par);
将导致您的错误。
nextFunction(const double& par);
或
nextFunction(double par);
将导致自动转换。因此,如果您真的想在nextFunction内更改参数,则需要
nextFunction(int& par);