Witam.
Wczoraj zacząłem się uczyć C++. TAK, WCZORAJ :P
Pomyślałem że zacznę od przeczytania kilku kursów dla początkujących.
Właśnie utknąłem w takim kursie, a konkretnie to w Zadaniu Domowym.
Szukałem trochę po sieci ale coś słabo to szło, pomyślałem że może na forum dowiem się szybciej i lepiej.
Do tej pory w tym kursie tablice przekazywało się do funkcji np. w taki sposób:
void funkcja(tab[]) {…}
int main() {
int tablica[3]={1,2,3};
funkcja(tablica);
…}
Czyli funkcja miała dostęp do CAŁEJ tablicy.
Natomiast Zadanie Domowe wygląda tak:
Napisz prosty program, który wczyta imię, nazwisko i wiek dwóch osób. Funkcja główna programu ma mieć następującą postać:
(W programie do wczytywania tekstu użyj std::cin. )
int main()
{
std::string imie[ 2 ];
std::string nazwisko[ 2 ];
int wiek[ 2 ];
for( int i = 0; i < 2; i++ )
wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] );
for( int i = 0; i < 2; i++ )
wypiszOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] );
return 0;
}
Czyli bez modyfikacja main'a trzeba dopisać dwie funkcje. Proste, gdybym mógł to zrobić po "swojemu" 2 minuty i działa.
Więc gdzie mam problem?
No właśnie z tymi funkcjami.
**wczytajOsobe( **imie[ i ], nazwisko[ i ], wiek[ i ] ); <= Nie przekazuje całych tablic tylko wydaje mi się że pojedyncze pola.
Ale jak napisze funkcje:
void wczytajOsobe(std::string imie,std::string nazwisko,int wiek)
{
std::cout<<"Podaj imie: "; std::cin >>imie;
std::cout<<"Podaj nazwisko: "; std::cin >>nazwisko;
std::cout<<"Podaj wiek: "; std::cin >>wiek;
}
to imie, nazwisko i wiek będą miały zasięg jedynie w tej funkcji. Więc nic do tablic w main'ie nie zostanie dopisane.
Kombinowałem na różne sposoby i nie wiem.
Jakie argumenty powinna mieć ta funkcja aby przez takie wywołanie: **wczytajOsobe( **imie[ i ], nazwisko[ i ], wiek[ i ] ); można było w niej dodać dane to tych tablic?