In which case the C++ this pointer can be NULL
this
can be null if you call a class method through a null pointer.
SomeClass *a = 0;
a->someMethod();//kaboom
While you definitely should NEVER be doing that, in practice you can even accientally get away with this without crashing (good luck catching that later) if someMethod
doesn't access any object fields. (Just don't do that, alright?)
Whether it is defined behavior or not is a different subject altogether. Most likely it is undefined behavior.
However, that does not usually happen from within a constructor (I think I only saw null this in a constructor when something threw an exception in a constructor. That happened long ago, so I don't even remember details anymore). Which means something weird is going on. You could be trying to cast this to something, something might be corrupting stack, accessing program variables via different thread, and so on. With the mount of code you provided it is impossible to guess what the problem here is.