2,3,4パラメータの間で最大値を見つける関数をオーバーロードするプログラムを作成しようとしています。私のコードは現時点ではちょっとうんざりしているようですが、実行するたびに "#include"の下にある恐ろしい赤い線と3つのパラメータ関数呼び出しを受け取ります。私は//それを無効にすると、2と4のパラメータは良いですが、私の3つのパラメータは良いです。あなたのうちの一人がそれを見て手伝ってもらえますか?ありがとうございました!関数のオーバーロードに問題がある
#include <cstdlib>
#include <iostream>
using namespace std;
double max (double, double, double, double);
int main(int argc, char** argv) {
double result;
result = max(10.0, 20.0);
cout << "Max(10.0, 20.0) = " << result << endl;
result = max(11.5, 21.2, 5.3);
cout << "Max(11.5, 21.2, 5.3) = " << result << endl;
result = max(1.8, 2.2, 1.7, 2.1);
cout << "Max(1.8, 2.2, 1.7, 2.1) = " << result << endl;
return 0;
}
double max(double a, double b)
{
if (a > b)
return a;
else
return b;
}
double max(double a, double b, double c)
{
if (a > b && a > c)
return a;
else if (b > a && b > c)
return b;
else
return c;
}
double max(double a, double b, double c, double d)
{
if (a > b && a > c && a > d)
return a;
else if (b > a && b > c && b > d)
return b;
else if (c > d)
return c;
else
return d;
}
'max'はすでに' std'名前空間に定義されています。あなたのプログラムから 'using namespace std;'を削除してください。 –
したがって、2つの変数については、宣言されていないのでstd :: maxが使用されています.4変数の場合は、オーバーロードされた関数が使用されています。 3変数関数が宣言されていないため、エラーが発生しています。 – anotherone