C ++ dieser Zeiger, verstecktes Argument in Funktionsaufrufen

Ich habe eine Stapelklasse mit Mitgliedern und eine Funktion namens push.

class STACK
{
    int data;
    public:
    void push(int x)
    {
        data=x;
    }
}

Was macht C ++, um diese Anweisung zu konvertieren:

s1.push(3);

zu

s1.push(this,3);

Grundsätzlich ist meine Frage, was unter der Haube passiert, um das zu generierenthis Zeiger und übergeben Sie es als verstecktes Argument?

Ich programmiere gerade in C. Mein Ziel ist es, ein Programm zu haben, das so nah wie möglich an OOP ist. Dafür habe ich Funktionszeiger als Mitglieder der Struktur. Daher möchte ich wissen, ob es möglich ist, irgendwie zu verfolgen, welche Struktur die Funktion aufgerufen hat (wie ein "dieser" Zeiger). Ich möchte so etwas nicht machen: s1.push (& s1,3); weil es meinen Zweck übertrifft.

Ist es möglich, s1.push (3) zu konvertieren? zu s1.push (& 1,3); über MAKRO-Substitution

Antworten auf die Frage(6)

Ihre Antwort auf die Frage