Sorry, somehow I managed to forget that primitives existed for that brief moment. I was reacting to the realization that "null" is a bizarre special case for the type system.
I was wrong on reinitializing references as well. Thanks for pointing that out. As far as const pointers, I meant that they were unlikely to be null, since they would have to be initialized to null. Of course, then I realized that you could easily assign them to another null pointer that you didn't realize was null.
Not a good day for me, but I don't think it warrants that kind of snarkiness.
To my credit, please reread the part where I said "there is actually no such thing as a null reference."
The best part of your reply is in showing how he failed his own interview, figuratively speaking of course. In real life, the candidate doesn't get to explain things the day after they were turned down because of bad answers.
I truly believe he knows his stuff, but even he made a mistake. He, however, didn't have to come up with his answer while people are staring at him.
Uhh no. Neither the const pointer nor the reference can be reassigned. And you have it the wrong way around. References cannot be null, pointers can.
The other difference is that if you try and dynamic_cast a reference and it failed, it throws an exception where as a pointer just returns nullptr.
>That's not the case in Java and C#, which allow "null" to be a right-hand value for all types.
That's also wrong, primitives are not nullable.