Q: What is the purpose of include guards?
Q: Why do I get the compiler error "xxx already defined" when I include my own files?

A: In order to understand the solution, we must first understand...