3 ms·
The syntax is different, but in terms of what you can do, the only difference I know is that references can be reassigned. Both give you the guarantee that it'
by sirmarksalot 13y ago
The syntax is different, but in terms of what you can do, the only difference I know is that references can be reassigned.
Both give you the guarantee that it's not pointing at the NULL address. In the case of const pointers, that's because you can't reassign it, and you'd never deliberately assign a const pointer to NULL. In the case of references, it's because there's actually no such thing as a null reference in C++.
That's not the case in Java and C#, which allow "null" to be a right-hand value for all types.
- verroq 13y ago>the only difference I know is that references can be reassigned. 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.
- deleted 13y ago[deleted]
- deleted 13y ago[deleted]
- sirmarksalot 13y agoSorry, 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."
- verroq 13y agoWell there is Nullable<T> for C#. But I haven't touched that language in ages.
- mmorett 13y agoThe 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.