There is one thing I never understood about references and I hope that one might help me. For all I know, a reference cannot be null. But what happens if you have a function
The behaviour in this context is undefined - this isn't particularly odd in c++. This is essentially identical to the situation where you have a pointer set to a local variable which has gone out of scope. C++ requires YOU control handle references and the lifetime of referenced objects.