¿Cómo almacena C ++ funciones y objetos en la memoria? [duplicar

Esta pregunta ya tiene una respuesta aquí:

¿Qué sucederá cuando invoque una función miembro en un puntero de objeto NULL? 6 respuestas

Digamos que tenemos una clase

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

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

El código anterior se compilará en Turbo C (donde probé) e imprimiráHi como salida.

Estaba esperando un accidente porquea esNULL. Más sobre si hagosayHi() función virtual, dice

Abnormal temination(Segmentation fault in gcc) 

Sé que mucho depende de la implementación, pero si alguien pudiera arrojar algo de luz sobre cualquier implementación o simplemente dar una visión general, sería realmente agradable.

Respuestas a la pregunta(4)

Su respuesta a la pregunta