Como o C ++ armazena funções e objetos na memória? [duplicado
Esta pergunta já tem uma resposta aqui:
O que acontecerá quando eu chamar uma função de membro em um ponteiro de objeto NUL respostasDigamos que temos uma aula
class A
{
int x;
public:
void sayHi()
{
cout<<"Hi";
}
};
int main()
{
A *a=NULL;
a->sayHi();
}
O código acima será compilado no Turbo C (onde testei) e imprimiráHi
como saída.
Eu esperava um acidente porquea
éNULL
. Mais se eu fizersayHi()
função virtual, diz
Abnormal temination(Segmentation fault in gcc)
Sei que muito disso depende da implementação, mas se alguém pudesse esclarecer alguma implementação ou apenas fornecer uma visão geral, seria muito bo