Freigeben über


Memberfunktionen (C++)

Klassen können Funktionen und Daten enthalten. Diese Funktionen werden als Memberfunktionen bezeichnet. Jede nicht statische Funktion, die innerhalb einer Klassendeklaration deklariert wird, gilt als eine Memberfunktion und wird mithilfe der Memberauswahloperatoren aufgerufen (. und –>). Bei Aufruf von Memberfunktionen aus anderen Memberfunktionen der gleichen Klasse können das Objekt und der Memberauswahloperator ausgelassen werden. Beispiel:

// member_functions1.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

class Point
{
public:
   short x()
   {
      return _x;
   }
   
   short y()
   {
      return _y;
   }

   void  Show()
   {
      cout << x() << ", " << y() << "\n";
   }
private:
   short _x, _y;
};

int main()
{
   Point pt;
   pt.Show();
}

Beachten Sie, dass in der Memberfunktion, Show, Aufrufe der anderen Memberfunktionen, x und y, ohne Memberauswahloperatoren erfolgen. Diese Aufrufe bedeuten implizit this->x() und this->y(). In main muss die Memberfunktion, Show, unter Verwendung des Objekts pt und des Memberauswahloperators (.) ausgewählt werden.

Die statischen Funktionen, die in einer Klasse deklariert werden, können mithilfe der Memberauswahloperatoren aufgerufen werden oder indem der vollqualifizierte Funktionsname, einschließlich Klassenname, angegeben wird.

Hinweis

Eine Funktion, die mithilfe des friend-Schlüsselworts deklariert wird, gilt nicht als Member der Klasse, in der sie als friend deklariert wird (obwohl sie ein Member einer anderen Klasse sein kann).Eine friend-Deklaration steuert den Zugriff, den eine Nichtmemberfunktion auf Klassendaten hat.

Die folgende Klassendeklaration zeigt, wie Memberfunktionen deklariert und aufgerufen werden:

// member_functions2.cpp
class Point
{
public:
   unsigned GetX()
   {
      return ptX;
   }
   unsigned GetY()
   {
      return ptY;
   }

   void SetX( unsigned x )
   {
      ptX = x;
   }
   void SetY( unsigned y )
   {
      ptY = y;
   }

private:
    unsigned ptX, ptY;
};

int main()
{
   // Declare a new object of type Point.
   Point ptOrigin;

   // Member function calls use the . member-selection operator.
   ptOrigin.SetX( 0 );
   ptOrigin.SetY( 0 );

   // Declare a pointer to an object of type Point.
   Point *pptCurrent = new Point;
   // Member function calls use the -> member-selection operator.
   pptCurrent->SetX( ptOrigin.GetX() + 10 );
   pptCurrent->SetY( ptOrigin.GetY() + 10 );
}

Im vorherigen Code werden die Memberfunktionen des Objekts ptOrigin unter Verwendung des Memberauswahloperators (.) aufgerufen. Allerdings werden die Memberfunktionen des Objekts, auf das von pptCurrent verwiesen wird, mithilfe des –>-Memberauswahloperators aufgerufen.

Siehe auch

Referenz

Klassen, Strukturen und Unions