Anzeige:
Ergebnis 1 bis 5 von 5

Thema: -> operator in c++ und verkettete listen

  1. #1
    Registrierter Benutzer
    Registriert seit
    09.05.2001
    Ort
    75196 remchingen
    Beiträge
    26

    -> operator in c++ und verkettete listen

    ich möchte in mein aktuelles c++ programm eine verkettete liste einbauen. doch in meinem tutorial verstehe ich nur bahnhof. das hauptproblem ist dass ich nicht verstehe was der -> operator bewirkt (bsp. this->x = 3. wär cool wenn mir das mal einer erklären könnte.

    danke

    mfg

    leifg
    software is like sex it's better when it's free

  2. #2
    Registrierter Benutzer
    Registriert seit
    04.12.2000
    Beiträge
    11

    nun

    also das funktioniert folgendermaßen

    this ist der zeiger auf sich selber, sprich die eigene klasse. der '->' operator ist für den zugriff auf eine variable, wobei der linke teil ein zeiger ist. this ist wie bereits erwähnt ein zeiger.

    this->x bedeutet, dass auf die variable x, welche in der klasse definiert sein muss, zugegriffen wird. wenn du bereits eine variable namens x definiert hast in der funktion, dann kannst du so die namensverwirrung a) für dich selber und b) für den compiler aufheben.

    ich hoffe das hilft dir

    >> trag

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.05.2001
    Ort
    75196 remchingen
    Beiträge
    26
    sorry ich hab mich ein bisschen unverständlich ausgedrückt. das mit this war nur ein beispiel. erstmal muss ich richtig verstehen was der -> operator macht.

    hier ein etwas eifacheres beispiel:

    class A
    {
    public:
    A() {};
    ~A() {};
    A(int i) { x = i;}
    int x;
    };



    A a(3);
    A* pa = &a;
    A* pb, *pc;
    a.x = 4;
    pa->x = 4; // was mach das?
    pb = new A;
    pb->x = 4; // und das?
    pc = new A[10]

    wo zeigt die zeigervariable pa und pb hin?

    danke im voraus
    software is like sex it's better when it's free

  4. #4
    Registrierter Benutzer
    Registriert seit
    04.12.2000
    Beiträge
    11

    also

    A a(3);
    A* pa = &a;

    das hier bedeutet, dass pa auf a zeigt und somit die gleiche x variable in folge ändern wird (siehe weiter unten)

    A* pb, *pc;
    a.x = 4;
    pa->x = 4; // was mach das?

    a.x weist der x komponente von a den wert 4 zu
    pa->x weist der x komponente von a (da pa auf a zeigt) auch 4 zu, also kein unterschied.

    der unterschied zwischen -> und . ist, ob es sich um einen zeiger handelt oder nicht.


    pb = new A;
    pb->x = 4; // und das?

    tja und hier wird der x komponente von pb (was gar nix mit pa oder a zu tun hat) der wert 4 zugewiesen.

    pc = new A[10]

    und das wird nicht funktionieren, da pc vom typ A** sein müsste! (10 zeiger auf 10 objekte, dazu muss pc wieder ein zeiger sein, irre kompliziert klingt das wieder, ich weiss)

    hoffe, das hilft dir

    >> trag

  5. #5
    Registrierter Benutzer
    Registriert seit
    10.08.2002
    Beiträge
    33
    Um es ganz kurz zu machen:

    Code:
    zeiger->element;
    
    // ist identisch mit:
    
    (*zeiger).element;
    Der Pfeiloperator "->" ist also ein Ersatz für den Zeigeroperator * in Kombination
    mit dem Punktoperator.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •