Por que o programa não falha quando eu chamo uma função de membro através de um ponteiro nulo em C +

#include "iostream"
using namespace std;
class A
{
public:
    void mprint()
    {
        cout<<"\n TESTING NULL POINTER";
    }
};

int main()
{
    A *a = NULL;
    a->mprint();
    return 0;
}

Estou recebendo a saída como "TESTING NULL POINTER". Alguém pode explicar por que este programa está imprimindo a saída em vez de travar. Eu verifiquei no Dev C ++ e no compilador aCC ambos deram o mesmo resultad

questionAnswers(6)

yourAnswerToTheQuestion