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 answersSagen 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.