函数原型错误,非void函数

时间:2014-03-07 16:47:52

标签: c++ compiler-errors

我一直在为这段代码得到一个奇怪的编译器错误:

double vector_length(double u1, double v1, double length)
{
length = pow(u1,2) + pow(v1,2);
length = sqrt(length);

}

1 个答案:

答案 0 :(得分:1)

您没有从声称返回double的函数返回任何内容。

你也接受三个参数值,并立即覆盖最后一个参数,这是毫无意义的。如果要通过第3个参数传达“返回”值,则需要通过引用传递它,并从函数返回void

所以,要么......

double vector_length(double u1, double v1) {
  double length = pow(u1, 2) + pow(v1, 2);
  length = sqrt(length);
  return length;
  // or simply return sqrt(pow(u1, 2) + pow(v1, 2));
}

void vector_length(double u1, double v1, double &length) {
  length = pow(u1, 2) + pow(v1, 2);
  length = sqrt(length);
}