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