Problem z zadaniem z rozdz. 26.
Ostatnio zmodyfikowano 2011-07-06 00:55
mykosik Temat założony przez niniejszego użytkownika |
» 2011-07-04 12:12:23 czemu ty piszesz tak "[ cpp] [ \c pp]" ?? |
Rzeczywiście , pomyłka , przepraszam. Po przeczytaniu tematu wskazanego przez jankowalski25 oczywiście kod poprawiłem wszystko działa ale nic z tego nie kumam.
Symbol & załatwi sprawę - wówczas zmienna np. imie wskazuje de'facto na to co zostało przekazane przy wywołaniu funkcji. Brak symbolu & oznacza, że zmienna ma być lokalna, a dane przekazane poprzez argument mają być skopiowane - tym samym nie są one propagowane w górę - co w wielu przypadkach jest korzystne (ale akurat nie w tym ;p).
|
Dlaczego w ten sposób wywołuje się funkcję? Czy może ktoś to prościej wytłumaczyć? |
|
jaupl |
» 2011-07-04 13:20:13 To jest operator referencji. (adresu) jak chcesz dokładnie to zrozumieć to sobie zobacz tu : http://www.winapi.rox.pl dalej daj kurs c++ temat 5 i 9 :) A najprościej, oznacza to że pracujesz "na zmiennej" a nie na jej kopi w funkcji. |
|
DejaVu |
» 2011-07-04 14:28:26 Referencja będzie omówiona w rozdziale 24. Problem w tym, że nie podoba mi się forma w jakiej napisałem rozdział, więc będę musiał go przerobić :P |
|
Nevervell |
» 2011-07-05 17:36:23 Operator & ( ampersand ) przechowuje adres obiektu ( lub pierwszego elementu tablicy ). Musisz do funkcji wpisać WSKAŹNIKI jako argumenty ( lub tablice wskaźników ) ponieważ na nich będziesz mógł dokonywać zmian obiektu w funkcji [Po takiej akcji tablica wskaźników która została umieszczona jako argument funkcji może modyfikować właściwy obiekt na który wskazuje]. Inaczej pracujesz tylko na kopiach obiektów które chciałeś zmienić a nie na właściwych obiektach. Po wyjściu z takiej funkcji destruktor niszczy niepotrzebne kopie a ty po próbie odczytu tej zmiennej uzyskujesz wartości taką samą jaką miałeś przed jej użyciem.
Pozdrawiam |
|
mykosik Temat założony przez niniejszego użytkownika |
» 2011-07-06 00:55:06 OK , dziekuję za wyjaśnienia i pozdrawiam |
|
1 « 2 » |