我一直在为这段代码得到一个奇怪的编译器错误:
double vector_length(double u1, double v1, double length)
{
length = pow(u1,2) + pow(v1,2);
length = sqrt(length);
}
答案 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);
}