Drugi dzień c++, pierwszy problem :]

0

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?

0
void  wczytajOsobe(std::string& imie,std::string& nazwisko,int& wiek)

lekcja na dziś: referencje

0

Dzięki wielkie. :] Biorę się dalej na naukę.

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