Problem z void. C++

Problem z void. C++
Kapsel Kapselek Tau
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 4 lata
  • Postów:3
0

Cześć! Mam problem. Chcę zrobić gre w której bedzię się robiło wirusy, ale nie o tym. Mam problem z void. Próbowałem zrobić to z int, ale też nie działa. (Nie wiem czym się różni void od int). Błąd to:

Kopiuj
|22|error: 'game' was not declared in this scope|

To jest mój kod który zrobiłem:

Kopiuj
#include <iostream>
#include <windows.h>
using namespace std;

string login;
string haslo;


int main(void)
{
    cout << "Witamy w hackconie!" << endl;
    cout << "Prosimy o zarejestrowanie sie" << endl;
    cout << "Login: ";
    cin >> login;
    cout << "Haslo: ";
    cin >> haslo;
    cout << "System loading..." << endl;
    Sleep(10000);
    game();
    return 0;
}
void game()
{
    cout << "TEST...TEST...TEST" << endl;
}

Z góry mówię, że jestem nowy w c++ (ogólnie w programowaniu). Dziękuję za jakąkolwiek odpowiedź!

edytowany 2x, ostatnio: flowCRANE
kq
Jak masz problem z czarnym samochodem to też mówisz że masz problem z czarnym?
pingwindyktator
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:Kraków
  • Postów:1055
3
Kopiuj
// TUTAJ musisz przenieść deklaracje i definicje funkcji game
int main(void)
{
cout << "Witamy w hackconie!" << endl;
cout << "Prosimy o zarejestrowanie sie" << endl;
cout << "Login: ";
cin >> login;
cout << "Haslo: ";
cin >> haslo;
cout << "System loading..." << endl;
Sleep(10000);
game(); // <------ TUTAJ funkcja game nie jest znana
return 0;
}
void game() // <------ bo deklarowana jest dopiero TUTAJ
{
cout << "TEST...TEST...TEST" << endl;
}

do not code, write prose
Patryk27
Właściwie to definiowana jest w miejscu void game() {, a nie deklarowana.
pingwindyktator
Zarówno definiowana, jak i deklarowana.
pingwindyktator
Jednak w procesie kompilacji istotna jest znajomość deklaracji funkcji. Jej definicja może znajdować się chociażby w innym compilation unit. Stąd napisałem "deklarowana".
atmal
  • Rejestracja:około 8 lat
  • Ostatnio:5 dni
  • Postów:913
3

Musisz mieć prototyp funkcji jeżeli znajduje się ona pod main:

Kopiuj
void game(); // Prototyp (pamiętaj o średniku na końcu)

int main(void)
{
	...
}

void game()
{
	// Tutaj definicja funkcji
}

Failure of one test is a tragedy, failure of fifty is a statistic.
edytowany 2x, ostatnio: atmal
Kapsel Kapselek Tau
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 4 lata
  • Postów:3
0
pingwindyktator napisał(a):
Kopiuj
// TUTAJ musisz przenieść deklaracje i definicje funkcji game
int main(void)
{
cout << "Witamy w hackconie!" << endl;
cout << "Prosimy o zarejestrowanie sie" << endl;
cout << "Login: ";
cin >> login;
cout << "Haslo: ";
cin >> haslo;
cout << "System loading..." << endl;
Sleep(10000);
game(); // <------ TUTAJ funkcja game nie jest znana
return 0;
}
void game() // <------ bo deklarowana jest dopiero TUTAJ
{
cout << "TEST...TEST...TEST" << endl;
}

Dziękuję!!!

Kapsel Kapselek Tau
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 4 lata
  • Postów:3
0
atmal napisał(a):

Musisz mieć prototyp funkcji jeżeli znajduje się ona pod main:

Kopiuj
void game(); // Prototyp (pamiętaj o średniku na końcu)

int main(void)
{
	...
}

void game()
{
	// Tutaj definicja funkcji
}

Dziękuję tak samo!!!

Patryk27
Pamiętaj, aby dawać łapki w górę i zaakceptować post, który rozwiązuje problem :-)
tajny_agent
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad rok
  • Postów:1340
2
Kapsel Kapselek Tau napisał(a):

Nie wiem czym się różni void od int

Idziesz do sklepu, masz 20zł. Kupujesz coś za 16.49zł:

  • Jeśli mówisz "reszty nie trzeba" to kasjerka zwraca ci void - czyli nic nie zwraca
  • Jeśli czekasz na resztę to zwracany typ jest różny od void - czyli coś tam dostaniesz

:P


"I love C++. It's the best language in the world right now for me to write the code that i need and want to write"
~ Herb Sutter

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.