Include guards Class definitions can only appear once #includes may appear many times Include guards ensure one definition #ifndef LIST_HH_INCLUDED #define LIST_HH_INCLUDED // rest of file goes here #endif Now safely #include "list.h" in any .cc file which uses the List class