I've started studying C++ recently, and I asked a friend who uses C++ at work on a daily basis about #ifndef and #define. He said that nobody uses because if someone writes proper code they are not neccesarry. However in the books (for beginners) I'm reading it is told to be a good practice to use them.