Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Wskaźnik this

#1
Wskaźnik this
Siemka,
do czego służy ten wskaźnik, w jakich sytuacjach się go używa, po co on jest? Nie mogę go w ogóle ogarnąć.
pozd.
 System operacyjny: windows_seven Przeglądarka: firefox
#2
RE: Wskaźnik this
Stwierdza tożsamość danego obiektu, tzn. Ten wskaźnik jest adresem obiektu, którego w danej chwili używasz.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#3
RE: Wskaźnik this
Tak najprościej mówiąc, jest to wskaźnik obiektu, na rzecz którego została wywołana funkcja składowa. Różni się on od typowych wskaźników m. in. tym, że nie można samemu zmienić wartości jaką przechowuje, możemy ją tylko sprawdzić(nie jest l-wartością).
Dyskusja o FAQ i propozycje zmian w dziale "Programowanie": http://forum.pcformat.pl/Przeczytaj-zani...emat-FAQ-t
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#4
RE: Wskaźnik this
ja podan na przykładzieOczko
mamy taki oto kod
Kod:
class klasa; // definicja klasy
int c; //definicja zwyklego typu wbudowanego
int main() // funkcja main
{
klasa klase_mamy; //nazwami klas sienie sugeruj ;)
klasa klasy_nie_ma;
//wywolanie funkcji dla jednej z klasy
klase_mamy.funkcja(c);
}
class klasa //klasa klasa :)
{
    public:
       void funkcja(int a); //deklaracja funkcji skladowej klasy klasa
};
void klasa::funkcja(int a) //tu chyba nie musze nic pisac
{
     cout << "Jestem sobie funkcja..." << endl;
     cout << "Operuje na składniku..." << endl;
     a = a*2

}
Klasa klasa ma funkcje składowa funkcja, gdy wywołujemy w main funkcje funkcja, dla jakiego obiektu wiemy oczywiście stądOczko
klase_mamy.funkcja();
Nie było, by to możliwe bez thisOczko Wskazuje on po prostu "obiekt" jaki jest używany...
Więc funkcja powinna wyglądać tak
Kod:
void klasa::funkcja(int a) //tu chyba nie musze nic pisac
{
     cout << "Jestem sobie funkcja..." << endl;
     cout << "Operuje na składniku..." << endl;
     this->a = a*2

}
jednak kompilator robi to za nasOczko Wiedza o this się przydaje jak chcemy jawnie mieć adres do funkcji wywołanej dla konkretnego obiektuOczko
Czemu jestem uzależniony od gry, która mnie zwyczajnie wkurza ? Wściekły
 System operacyjny: windows_xp_2003 Przeglądarka: chrome
#5
RE: Wskaźnik this
Missqu - gorszego przykładu nie mogłeś wymyślić?
Poza tym kup sobie słownik, a jeżeli Cię nie stać to niech rodzice odetną Ci internet - od razu znajdą się pieniądze.
Kod:
#include <iostream>

class testowa
{
    private:
        static int a;

    public:
        int funkcja(int a)
        {
            return a;
        }
};
int testowa::a = 10;

int main()
{
    testowa test;
    std::cout << test.funkcja(20) << std::endl;
}
Skompiluj, spójrz na wynik i usuń this->
Jak widać z this wyrzuci 10, bo odnosi się do obiektu klasy, a bez this wyjdzie 20, bo odnosi się do obiektu z funkcji składowej.
 System operacyjny: windows_seven Przeglądarka: firefox
#6
RE: Wskaźnik this
krytykować potrafisz... a mi jakoś funkcja nic nie rozumie
Czemu jestem uzależniony od gry, która mnie zwyczajnie wkurza ? Wściekły
 System operacyjny: windows_xp_2003 Przeglądarka: chrome
#7
RE: Wskaźnik this
No dzięki panowie i nie kłócić mi się tuJęzyk
 System operacyjny: windows_seven Przeglądarka: firefox
#8
RE: Wskaźnik this
Cała przyjemnoś po mojej stronieOczko
Pamiętaj, że this nie używa się dla statycznych składników klasy... Bo i po co ? Wiadomo jak się odnieść do takiego składnika, bo jest tylko jeden nieśmiertelny na klasęOczko
PS
Mogę się mylić... A Andros kompilator sam dodaje wskaźnik this ... Jest on potrzebny wtedy, gdy chcemy adres wywołania tej funkcji przesłać do jakiejś funkcji... albo zwrócić jako rezultat, gdyby nie to wiedza o nim byłąby bezsensowna...
PS2
Handy90
To co masz w podpisie, znam troszkę inną wersje "Lepiej zapytać i się wstydzić5 min... niż nie zapytać i wstydzić się całe życie."
Czemu jestem uzależniony od gry, która mnie zwyczajnie wkurza ? Wściekły
 System operacyjny: windows_xp_2003 Przeglądarka: chrome
Programy: Polecane / Nowe / Inne



Użytkownicy forum szukali:
wskaźnik thiswskaźnik this c++wskaznik thisc++ wskaznik thiswskaxnik thiswskaźnik this po co

Podobne wątki (Wskaźnik this)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [C++] Wypisanie adresu, na który pokazuje wskaźnik char* Szachista 3 8825 02.07.2010, 20:39
Ostatni post: Szachista
  [C++] Przeciążony operator[] a wskaźnik do obiektu klasy... Szachista 2 4186 22.04.2010, 06:30
Ostatni post: Szachista
  [C++] "Inteligentny" wskaźnik, tablica (kontener), iterator Shihan 4 6840 19.04.2010, 15:18
Ostatni post: maciek94

Skocz do: