Błąd Kompilatora C2064

0

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;
	}
}


1

Tablice indeksuje się z wykorzystaniem operatora [], nie ().

0

Ech... Faktycznie taki głupi błąd. A ja skupiłem się na tym co może być nie tak w przekazywanych danych do funkcji. Dziękuję bardzo. ;)

2

Taka uwaga na przyszłość: nie baw się w polskie komunikaty błędów, bo one są dla nikogo niezrozumiałe i trzeba zgadywać o jaki angielski chodziło. No i wypadałoby pokazać w której linii jest błąd, żebyśmy również nie musieli zgadywać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1