通过引用参数传递给函数C ++

时间:2013-09-28 16:39:18

标签: c++ function parameters

我们假设这段代码:

void function(double &f){

// doing w/e here

}

然后在主要功能中:

float v;

function(&v);

我的编译器说这不正确,买我不明白为什么。

关于同一主题:

void function(float *&f){

// doing w/e here

}

然后在主要功能中:

float *v;

function(v+5);

由于某种原因,这也是不正确的,我也没有。

所以我的问题是:为什么这些电话不正确?

1 个答案:

答案 0 :(得分:4)

第一个示例不正确,因为&v是指向float的指针。该函数期望引用double。指向float的指针不是对double的引用。它们是不兼容的类型。

第二个示例不正确,因为v+5是临时的。您不能将引用传递给非const临时文件。