Was ist ein Member?

Ein Member - auf Deutsch 'Mitglied' - gehört zu einem überordneten Bereich. Dieser Bereich ist in diesem Fall eine Klasse.

Membervariablen

Eine Instanz einer Klasse kann Variablen enthalten - genauso wie eine Struktur. Diese Variablen nennt man entsprechend Membervariable:

class Point
{
public:
  int XPosition;       // Membervariable
  int YPosition;       // Membervariable
};

entspricht

struct Point
{
  int XPosition;       // Membervariable
  int YPosition;       // Membervariable
};

Auf Membervariablen wird genauso wie auf Member von C-Strukturen zugegriffen.

Point point, 
Point *pointer = &point;
 
point.XPosition = 4;
pointer->YPosition = 5;

Aber nun kommen wir langsam zu den ersten Unterschieden zwischen Klassen in C++ und C-Strukturen: C++-Klassen können auch zugehörige Funktionen haben. Diese Funktionen nennt man häufig auch Methoden:

Methoden

Methoden sind eigentlich ganz normale Funktionen, die jedoch zu einer Klasse gehören und auch nur mit einer Instanz gerufen werden können. Bauen wir eine Prozedur Print zu unserer Point-Klasse hinzu:

class Point
{
public:
  int XPosition;      // Membervariable
  int YPosition;      // Membervariable
 
  void Print( void ); // Methode
};

Diese Methode gehört nun zur Klasse Point. Wenn sie nun im Quelltext beschrieben wird, so muss auch klargestellt werden, dass es sich um die Print-Methode der Klasse Point handelt. Man spricht davon, dass die Klasse einen Namensraum hat, der ihrem Namen entspricht - eben Point und dass die Methode im Namensraum der Klasse Point liegt. Um diese Zugehörigkeit zu einem Namensraum auszudrücken, wird der Operator :: verwendet:

void Point::Print( void )
{
  printf( "Point: %d/%d\n", XPosition, YPosition );
}

Eine Methode hat immer Zugriff auf alle Member der Klasse, also alle anderen Methoden und alle Membervariablen. Deswegen kann eine solche Methode auch nicht ohne eine Instanz der Klasse gerufen werden. Der Zugriff auf eine Methode entspricht dem auf eine Membervariable - nur dass sie, wie für eine Funktion üblich, eine Parameterliste erhält:

Point point, 
Point *pointer = &point;
 
point.XPosition = 4;
pointer->YPosition = 5;
 
point.Print();
pointer->Print();