Possible Duplicate:
C++: When to use References vs. Pointers
Could operator overloading have worked without references?
I couldn't help it, but this fundamental question was on my mind: why does C++ have references when you could do with pointers just as well?
I know that in certain situations they are slightly safer and more often than not they make the code prettier, but technically there is no difference, right? So are there any situations where I couldn't do with a pointer and a reference is a must?
I would like to see specific examples of when using references is unavoidable.
Disclaimer:
I haven't found any answers to this on StackOverflow, this is not a question about the differences in syntax. I am wondering why the C++ language introduced references in the first place.