1

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

int my_var = collection[i];

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

如何从此参考中获取值或转换它?

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

nextFunction(int id, ...);

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

4

2 回答 2

0

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

nextFunction(double& par);

会导致你的错误。

nextFunction(const double& par);

或者

nextFunction(double par);

会导致自动转换。因此,如果您真的希望 par 在 nextFunction 内更改,则需要

nextFunction(int& par);
于 2013-01-04T09:07:32.170 回答
0

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

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

于 2013-01-04T07:01:47.067 回答