Why Separation of interface and implementation in c++ is essential?

i am confuse on this question. Separating interface from implementation ?? please tell me about the benefits?? thanks :)

This will help you understand what Interfaces are actually used for:

http://www.tutorialspoint.com/cplusplus/cpp_interfaces.htm

Actually this approach is used for making a code/class re-usable, How ? when ever you give your class file to anyone. you will never give your actual code to the person. you will give the classname.obj file (complied version) of the class and the implementations of the functions and variable you have used.