1

C++ を使用して Mac 用の SDL ゲームを作成しようとしています。SDL 関連はすべて正常に動作していますが、sqrt 関数を使用しようとするとエラーが発生しますno matching function for call to 'sqrt'。これがインクルードのリストと最初の関数です (main() 関数は今のところ何もしません):

#include <iostream>
#include <stdlib.h>
#include <SDL/SDL.h>
#include <math.h>

#include "geometry.h"

using namespace std;

void drawLine(vector2 start, vector2 end)
{
    double x = end.x - start.x;
    double y = end.y - start.y;
    double length = sqrt(x*x, y*y); // I get the error here
}

同じ結果でインポートも試みました。これを機能させるために Mac (Lion、XCode 4.3) で何か特別なことをしなければなりませんか?

編集: 完全を期すために、geometry.h には vector2 構造体の定義が含まれています

4

2 に答える 2

8

sqrt1 つの引数のみを取ります。あなたはそれを2つ与えています。おそらく、これを行うつもりでした:

double length = sqrt(x*x + y*y);

または、 sqrt とhypotを混同しましたか?

于 2012-06-18T15:04:53.570 に答える
2

Opengroupによると、sqrtには引数が1つしかありません

于 2012-06-18T15:05:32.350 に答える