Witam!
Poniższy kod generuje błąd kompilatora VisualStudio C2064 o treści "funkcja przyjmująca 1 argumentów nie jest wynikiem przetworzenia termu". Na stronie wyjaśnione jest, że błąd taki generuje następujący warunek. Wykonano wywołanie do funkcji przy użyciu wyrażenia. Wyrażenie nie zostało oszacowane jako wskaźnik do funkcji, która ma określoną liczbę argumentów.. Błąd występuje w drugiej funkcji void check. Niestety nie mam ani pojęcia co to znaczy, ani pomysłu jak to naprawić. :/ Proszę o pomoc. Z góry dziękuję. :D
std::vector<int> answer()
{
int answer;
std::vector<int> guess;
for (int i = 0; i < 4; i++)
{
std::cin >> answer;
if (answer > 9 || answer < 0) throw answer;
}
guess.push_back(answer);
return guess;
}
void check(std::vector<int> number, std::vector<int> guess)
{
int cows = 0;
int bulls = 0;
for (int i = 0; i < number.size(); i++)
for (int a = 0; a < number.size(); a++)
{
if (guess(i) == number(a))
{
if (guess(i) == number(i))
bulls++;
else
cows++;
}
}
std::cout << "\n\nYou have got" << cows << " and " << bulls;
}
int main()
{
try
{
std::vector<int> number(4);
number[0] = 2;
number[1] = 7;
number[2] = 4;
number[3] = 1;
std::cout << "Enter 4 integers. Separate them by space: ";
std::vector<int> guess = answer();
check(number, guess);
}
catch (int x)
{
std::cout << "\n\nAn error has occured! Code: " << x;
}
}