.* und ->* Operatoren

Von: , Frage gestellt am Mo, 7. Aug 2000

Hallo,

kann mir jemand kurz erklären, wozu man folgende Operatoren
braucht: .* und ->*
Danke im Voraus.

Gruß Patrick

8 Antworten zu dieser Frage

  1. Antwort von nach 8 Minuten hilfreich
    Re: .* und ->* Operatoren

    kann mir jemand kurz erklären, wozu man folgende Operatoren
    braucht: .* und ->*
    Mit . kannst du einen Member einer Klasse oder einer Struktur ansprechen, mit -> machst du es, wenn du einen Pointer hast. Also z. B. Klasse Data, Methode getData():

    Data* pdX;
    Data dX;
    pdX->getData();
    dX->getData();

    Grüße, Robert

    PS: Falls du mit dem * nicht was beliebiges sondern den konkret "*" gemeint hast, dann sorry die unnötige Antwort, keine Ahnung. :-)

    • Antwort von nach 12 Minuten hilfreich
      Re^2: .* und ->* Operatoren

      Data* pdX;
      Data dX;
      pdX->getData();
      dX->getData();
      was natürlich dX.getData() heissen müsste, aber das hast du natürlich gemeint, is klar.

      Bruno

      • Antwort von nach 22 Minuten hilfreich
        Re^3: .* und ->* Operatoren

        was natürlich dX.getData() heissen müsste, aber das hast du
        natürlich gemeint, is klar.
        Ups klar, jaja, Copy&Paste und so. :)

        Aber heute ist Montag, da scheitert man sowieso schon am Einfachsten. :o)

        Grüße, Robert

  2. Antwort von nach 6 Stunden hilfreich
    Re: .* und ->* Operatoren

    Hallo Robert und Bruno,

    danke für eure Antworten, aber ich meinte nicht . und -> ,
    die kenne ich.

    Sondern .* und ->* die Sternchen gehören dazu !

    Gruß Patrick

    • Antwort von nach 6 Stunden hilfreich
      Re^2: .* und ->* Operatoren

      Was für ne Sprache soll das überhaupt sein?
      Hast du ein Stück Code zur Hand was das mal im Kontext zeigt wie die Operatoren eingesetzt werden?

      Bruno

      • Antwort von nach einem Tag hilfreich
        Re^3: .* und ->* Operatoren

        Hallo Bruno,

        >>Was für ne Sprache soll das überhaupt sein?
        es sind Operatoren von C++.
        Beispiel habe ich keines, da ich die Operatoren nur in einer
        Tabelle gesehen habe.

        Gruß Patrick

        • Antwort von nach einem Tag hilfreich
          Re^4: .* und ->* Operatoren

          >>Was für ne Sprache soll das überhaupt sein?
          es sind Operatoren von C++.
          Beispiel habe ich keines, da ich die Operatoren nur in einer
          Tabelle gesehen habe.
          Vielleicht soll es auch nur heissen, dass nach dem . oder dem -> noch irgendwas anderes kommt (der Funktionsname)

          Mir sind diese "Operatoren" auf jeden Fall noch nie begegnet.

          Bruno

  3. Antwort von nach einem Tag hilfreich
    Re: .* und ->* Operatoren


    Hi Patrick ;-)))

    Eigentlich ergibt sich die Bedeutung dieser beiden Operatoren von alleine. Ich halte es auch für schlecht, dass sie als eigene Operatoren bezeichnet werden. Also, links von diesen Operatoren steht ein Objekt einer Klasse/Struktur, und rechts davon steht ein Zeiger auf ein Member dieser Klasse/Struktur.

    //Eine Klassen-Deklaration:
    class CKlasse {
    int iBla;
    int MachWas(int); };
    //Ein Objekt anlegen:
    CKlasse Objekt;
    //Einen Zeiger auf ein Klassenobjekt definieren:
    CKlasse *pObjekt;
    //Einen Zeiger auf die Member-Funktion der Klasse definieren:
    CKlasse::int(*)(int) pMemberFunc;
    //Die beiden Zeiger initialisieren
    pObekt= &Objekt;
    pMemberFunc= CKlasse::&MachWas;
    //Jetzt kannst du die Member-Funktion wie folgt aufrufen,
    //der Wert 1 wird als Funktionsparameter übergeben:
    (pObjekt->*pMemberFunc)(1)
    

    Das gabs auch schon in C. In C++ kann aber auf der rechten Seite ein Zeiger auf eine Funktion auftauchen, was in C nicht möglich ist (weil Strukturen dort keine Funktionen enthalten).

    Es ist aber kein Wunder, dass du dies nicht wußtest, denn wer braucht das schon?

    cu Stefan.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!