次のコードをご覧ください
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
//int side1 = 0;
//int side2 = 0;
//int rightSide = 0;
cout << "Right Side" << setw(10) << "Side1" << setw(10) << "Side2" << endl;
for(int i=1;i<=500;i++)
{
//side1++;
//cout << side1 << endl;
for(int a=1;a<=500;a++)
{
//side2++;
//cout << "side 2 " << side2 << endl;
for(int c=1;c<=500;c++)
{
//rightSide++;
int rightSideSqr = pow(c,c);
int side1Sqr = pow(i,i);
int side2Sqr = pow(a,a);
if(rightSideSqr == (side1Sqr+side2Sqr))
{
cout << rightSideSqr << setw(15) << i << setw(10) << a << endl;
}
}
}
}
}
これにより、「PythagorialTriples.cpp:28:エラー:オーバーロードされた `pow(int&、int&)'の呼び出しがあいまいです」というエラーが発生します。メソッドの代わりにi*iのような手動電源を使用した場合、これは発生しません。なぜこれが起こっているのか誰かが私に説明できますか?とにかく私はC++に不慣れです。ありがとう