good one.....but what would you say if i write in .NET or even in JAVA
FileStream fs; // (or using any other class)
What is FileStream -> a pointer or a reference ?
Can you elaborate it for other platforms ?

In C++ a reference variable is internally implemented as a constant pointer, and that is why it is necessary to initiallize a reference variable during declaration... as it is treated as a constant variable (pointer) internally.

That is incorrect, zaka. A reference is a second name (alias) for an object. You can't name something that doesn't exist, therefore you have to specify the object being aliased when you declare the reference. When a reference is passed as an argument, a copy of the objects address is passed. This is one fewer levels of indirection than when a pointer to the object is passed.