Was ist das hier?

  • Eine Plattform von Flensburger Studenten für Flensburger Studenten
  • Ein Wiki zum Sammeln von Wissen
  • Ein Forum zum Austausch
  • Eine Wissensdatenbank zum Informatikstudium:
    • Programmieren in C, C#, PHP, Javascript, HTML, CSS
    • Datenbanken und Abfragen mit SQL
    • 2D / 3D - Gestaltung
    • Mathe, Physik, Gerätetechnik, RoBs
    • Audio- / Videotechnik
    • ...und vieles mehr

Anmelden

Warum registrieren?

Weil besser als gut!

 

Zeiger auf Mitglieder (C++)

Auf nicht statische Klassenmitglieder kann über sog. element pointer zugegriffen werden. Dies wird zwar relativ selten verwendet, soll hier aber dennoch gezeigt werden, da die etwas exotische Syntax erklärungsbedürftig ist.

Eine Klasse X habe die public members int a; und void f1(int i);. Folgende element pointer können dann deklariert (nicht definiert) werden:

C++
int X::*zXint;
void (X::*zXvoid)(int);

Evtl. gibt es noch kein Objekt !

  • "zXint ist ein Zeiger, der auf alle int member der Klasse X zeigen kann"
  • "zXvoid ist ein Zeiger, der auf alle void Methoden der Klasse X mit einem int-Argument zeigen kann"

Den Zeigern können jetzt 'Memberadressen' zugewiesen werden ("an Member binden"), obwohl evtl. noch immer kein Objekt existiert:

C++
zXint = &X::a;
zXvoid = &X::f1;

Zur Dereferenzierung und Bindung dieser Zeiger an ein Objekt werden die speziellen Operatoren .* und ->* eingesetzt (->*, falls der linke Operand ein Zeiger auf ein Objekt ist).

Beispiel

Das Programm elem_point.cpp aus der Vorlesung


Kategorie: Programmieren2 | 2. Semester
| Mehr

Zahlen & Daten

  • 353 Seitenaufrufe
  • 1118 Tage alt
  • 4 Versionen
  • Letzte Änderung: 30.04.2009 um 08:54 Uhr

Publish