Heim > Backend-Entwicklung > C++ > Wie rufe ich Zeiger auf Memberfunktionen in C auf?

Wie rufe ich Zeiger auf Memberfunktionen in C auf?

Linda Hamilton
Freigeben: 2024-12-16 04:53:17
Original
449 Leute haben es durchsucht

How Do I Call Pointers to Member Functions in C  ?

Zeiger auf Mitgliedsfunktionen in C aufrufen

In C bieten Zeiger auf Mitgliedsfunktionen eine praktische Möglichkeit, Methoden für Objekte dynamisch aufzurufen. Ihre Syntax kann jedoch eine Herausforderung darstellen.

Syntax zum Aufrufen von Zeigern auf Mitgliedsfunktionen

Um einen Zeiger auf eine Mitgliedsfunktion aufzurufen, wird die folgende Syntax verwendet:

(object->*pointer_variable)(params)
Nach dem Login kopieren

wobei:

  • Objekt ist die Instanz, auf der die Funktion ausgeführt wird aufgerufen
  • *pointer_variable ist der Zeiger auf die Mitgliedsfunktion
  • params sind die an die Funktion übergebenen Parameter

Syntaxbeispiel

Bedenken Sie den folgenden Codeausschnitt:

typedef void (Box::*HitTest) (int x, int y, int w, int h);

for (std::list<HitTest>::const_iterator i = hitTestList.begin(); i != hitTestList.end(); ++i)
{
    HitTest h = *i;
    (box->*h)(xPos, yPos, width, height);
}
Nach dem Login kopieren

In diesem Beispielsweise wird eine Liste von Zeigern auf HitTest-Memberfunktionen durchlaufen. Jeder Zeiger wird aus der Liste abgerufen und aufgerufen, indem der Boxzeiger wie folgt bereitgestellt wird.

Mitgliedsfunktionen zu einer Liste von Zeigern hinzufügen

Um Mitgliedsfunktionen zu einer Liste hinzuzufügen Für Zeiger kann die folgende Syntax verwendet werden:

list.push_back(&box->HitTest);
Nach dem Login kopieren

Dieser Code verschiebt den Zeiger auf die HitTest-Mitgliedsfunktion der Box Objekt in die Liste einfügen.

Das obige ist der detaillierte Inhalt vonWie rufe ich Zeiger auf Memberfunktionen in C auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage