接收错误“没有匹配的功能调用pow(double)”

时间:2019-08-25 02:36:43

标签: c++

我对

有以下声明
distance = sqrt (pow(point2X - point1X), 2) + (pow(point2Y - point1Y, 2));

这给出了以下错误

  

错误:没有匹配的函数可以调用'pow(double)'

1 个答案:

答案 0 :(得分:2)

您放错了括号。应该是:

distance = sqrt (pow(point2X - point1X, 2) + pow(point2Y - point1Y, 2));

一种更好的表达方式是:

xdiff = point2X - point1X;
ydiff = point2Y - point1Y;
distance = std::sqrt( xdiff * xdiff + ydiff * ydiff);

如果您使用C ++ 11,则可以使用std::hypot

distance = std::hypot ( point2X - point1X,  point2Y - point1Y );