I've been programming C++ decently for a few years, but due to my....excrecable...education in it, recently picked up a few books, to learn how to do it right. (For example, my stupid teachers never once told me to use a pointer...or dynamic allocation...and, well, when in my projects I had to, you can guess how the learning curve went. Not well.)
I've been reading, among other things, some language-specifications type things....
2 things I don't quite get, even after reading them.
A. the C++ casts--const_cast,static_cast,dynamic_cast,reinterpret_cast. Huh? What's the deal? what are they, what's the difference between them and (type)expr casts?
B. References. I know perfectly well how to use functions with pass by reference, and so on...but I had never heard of using references outside of function parameters. What are they, how does one declare one, when are they used?