LyanVu Opublikowano 19 Marca 2014 Udostępnij Opublikowano 19 Marca 2014 Witam, przejdę do sedna. to jest wskaźnik na obiekt klasy cEnemy: cEnemy* pEnemy; No dobra, ale niby jaki obiekt?! załóżmy, że stworzę sobie 5 obiektów klasy cEnemy. a pozniej ten wskaźnik, to na co on niby wskazuje? (ni chu..chu.. tych cholernych wskaźników nie czaje. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Saus Opublikowano 19 Marca 2014 Udostępnij Opublikowano 19 Marca 2014 cEnemy nikas_z_toporem; cEnemy* pEnemy = &nikas_z_toporem; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Madness Opublikowano 19 Marca 2014 Udostępnij Opublikowano 19 Marca 2014 Krótki przykład: int punkty = 3; // tworzymy zmienna i nadajemy jej wartosc int * pointer = &punkty; // tworzymy wskaźnik i każemy mu wskazywać na adres zmiennej punkty cout << *pointer << endl; // wypisujemy sobie wartość wskaźnika pointer punkty = 14; // zmieniamy zawartość zmiennej punkty cout << *pointer << endl; // i ponownie wypisujemy wartość wskaźnika W konsoli powinieneś zobaczyć: 3 i 14. Zauważ, że wartość zmiennej punkty zmieniła się dwa razy, a wskaźnik na zmienną ustawiliśmy tylko raz. Więc dlaczego wypisało nawet zmienioną zawartość zmiennej punkty ? Bo wskazuje na adres komórki pamięci w której zmienna punkty jest przechowywana. Ale to jeszcze nie wszystko, teraz za pomocą wskaźnika pointer możesz manipulować zmienną punkty: *pointer = 7; // w tej chwili wartość zmiennej punkty zmieni się z 14 na 7 // sprawdźmy to wypisując jej zawartość cout << punkty << endl; W konsoli powinieneś ujrzeć liczbe 7. Jest jeszcze sporo zastosowań dla wskaźników, ale to raczej nauczysz się o nich później. Musisz pamiętać kilka rzeczy: 1.Żeby dostać się wartości zmiennej na jaką wskazuje wskaźnik musisz poprzedzić nazwe tego wskaźnika gwiazdką. 2.Wskaźnik nie przyjmuje żadnych innych wartości niż adres komórki pamięci. 3.Wskaźnikiem możesz manipulować dowolną zmienną. 4.Do wskaźnika możesz przypisać dowolną zmienną tylko jeśli są tego samego typu ( są od tego jeszcze wyjątki, ale nie chce Ci mieszać ). No, może coś tam jeszcze by się wymyśliło, ale na kursie/w książce na 100% to pisze, a ty i tak musisz poćwiczyć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Czarny Ass Opublikowano 20 Marca 2014 Udostępnij Opublikowano 20 Marca 2014 Jak stworzysz pięć obiektów klasy cEnemy, a później wskaźnik to on nie wskazuje na nic. Dopiero musisz mu coś "wskazać". :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Madness Opublikowano 20 Marca 2014 Udostępnij Opublikowano 20 Marca 2014 Jak stworzysz pięć obiektów klasy cEnemy, a później wskaźnik to on nie wskazuje na nic. Dopiero musisz mu coś "wskazać". :) Hmmm... to nie do końca prawda, on zawsze na coś wskazuje, dlatego najlepiej jest przypisać mu na samym początku wartość NULL, żeby uniknąć komplikacji. W momencie tworzenia jakiejkolwiek zmiennej bądź wskaźnika, zostaje jej/mu nadana automatycznie wartość ( i niestety nie taka, jakiej byśmy się spodziewali). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Czarny Ass Opublikowano 20 Marca 2014 Udostępnij Opublikowano 20 Marca 2014 No tak, ale to są śmieci, więc wystarczy, że pamięta, iż musi coś "wskazać". A wartość zmiennej nie jest nawet tyle co nadawana automatycznie, a po prostu pozostałość po czymś co wykorzystywało ten obszar pamięci, który zarezerwowaliśmy dla zmiennej. ;) Poza tym, chyba teraz większość kompilatorów już w tej kwestii jest na tyle zautomatyzowana, że sama wszystko zeruje. Miej dobre nawyki, LyanVu, mimo wszystko. ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Madness Opublikowano 20 Marca 2014 Udostępnij Opublikowano 20 Marca 2014 No tak, ale to są śmieci, więc wystarczy, że pamięta, iż musi coś "wskazać". A wartość zmiennej nie jest nawet tyle co nadawana automatycznie, a po prostu pozostałość po czymś co wykorzystywało ten obszar pamięci, który zarezerwowaliśmy dla zmiennej. ;) Poza tym, chyba teraz większość kompilatorów już w tej kwestii jest na tyle zautomatyzowana, że sama wszystko zeruje. Miej dobre nawyki, LyanVu, mimo wszystko. ;) +1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
waxx Opublikowano 20 Marca 2014 Udostępnij Opublikowano 20 Marca 2014 Witam, przejdę do sedna. to jest wskaźnik na obiekt klasy cEnemy: cEnemy* pEnemy; No dobra, ale niby jaki obiekt?! póki co to na nullptr :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LyanVu Opublikowano 2 Kwietnia 2014 Autor Udostępnij Opublikowano 2 Kwietnia 2014 Znowu mały problem więc nie tworzę nowego tematu. Konstruktory się wywołują gdy tworzę obiekt to wiem. A jak wywołać destruktor? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Czarny Ass Opublikowano 2 Kwietnia 2014 Udostępnij Opublikowano 2 Kwietnia 2014 delete costam; Sprawdzaj takie rzeczy w internecie, bo jest ich masa. Aż się pokusiłem o sprawdzenie czy to jest do znalezienia (xD) i już pierwszy link jest do wikipedii, gdzie masz wszystko o destruktorach. ;) http://pl.wikipedia.org/wiki/Destruktor Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LyanVu Opublikowano 2 Kwietnia 2014 Autor Udostępnij Opublikowano 2 Kwietnia 2014 Dzięki bardzo ;] W przyszłości będę pytał wujka Google :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się