Wie speichert C ++ Funktionen und Objekte im Speicher? [Duplikat

Diese Frage hat hier bereits eine Antwort:

Was passiert, wenn ich eine Member-Funktion für einen NULL-Objektzeiger aufrufe? 6 answers

Sagen wir, wir haben eine Klasse

class A
{
    int x;
public:
    void sayHi()
    {
        cout<<"Hi";
    }
};

int main()
{
    A *a=NULL;
    a->sayHi();
}

Der obige Code wird auf Turbo C (wo ich getestet habe) kompiliert und gedrucktHi als Ausgabe.

Ich hatte Absturz erwartet, weila istNULL. Mehr über wenn ich @ macsayHi() Funktion virtuell, es heißt

Abnormal temination(Segmentation fault in gcc) 

Ich weiß, dass vieles von der Implementierung abhängt, aber wenn jemand etwas Licht auf eine Implementierung werfen oder nur einen Überblick geben könnte, wäre das wirklich nett.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage