• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ prosta funkcja nie działa?

Cloud VPS
0 głosów
271 wizyt
pytanie zadane 16 grudnia 2019 w C i C++ przez Adam Kowalski Użytkownik (630 p.)

Mam sobie taką funkcje : 

 void wydarzenie1(Bohater a) //w nawiasie Bohater to nazwa klasy 
 {cout<<"nadaj imie"<<endl;
   string imiee;
   cin>>imiee;
   a.imie=imiee;
 }

A potem chciałbym wywołać tą funkcje w main() w taki sposób.

int main() {
Bohater tomek;  
wydarzenie1(tomek); 
cout<<tomek.imie;

return 0;}

i jak na końcu chce wyświetlić imię obiektu tomek to nic nie ma, żadne imie nie wpływa do obiektu tomek :c O czym nie wiem? 

1 odpowiedź

+1 głos
odpowiedź 16 grudnia 2019 przez tangarr Mędrzec (155,180 p.)
wybrane 16 grudnia 2019 przez Adam Kowalski
 
Najlepsza

Funkcja wydarzenie1 działa na kopii obiektu Bohater.
Żeby pracować na obiekcie przekazanym z zewnętrznej funkcji musisz użyć referencji (lub ewentualnie wskaźnika).

void wydarzenie1(Bohater &a) //w nawiasie Bohater to nazwa klasy 
{cout<<"nadaj imie"<<endl;
  string imiee;
  cin>>imiee;
  a.imie=imiee;
}

Zwróć uwagę na ampersand (znak &) przed nazwą zmiennej a. Dzięki niemu kompilator nie wykonuje kopii przekazanego obiektu tylko używa przekazanej zmiennej.

komentarz 16 grudnia 2019 przez Adam Kowalski Użytkownik (630 p.)
Dziękuję! Muszę sobie o tym więcej poczytać

Podobne pytania

+1 głos
3 odpowiedzi 2,213 wizyt
0 głosów
1 odpowiedź 209 wizyt
pytanie zadane 15 sierpnia 2020 w C i C++ przez lujasjeden Użytkownik (860 p.)
0 głosów
1 odpowiedź 230 wizyt

93,456 zapytań

142,452 odpowiedzi

322,721 komentarzy

62,837 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...