I am trying to learn classes in c++, in the header file, do we always have to include the #ifndef #define. and also can we include other libraries in the header file such as <iostream> <string>, my code is giving errors if I do not include te standard libraries.
You need to include every header which is declaring symbols you are going to use.
Adding the header guard is a good practice but it's not mandated by the language http://www.cplusplus.com/forum/articles/10627/