I would recommend using the second method dem. mentioned - it's a good habit to get into. Basically, it checks to see if anything called RANDOM_VALUE_YOU_WONT_USE has been defined yet, via the #ifndef line - everything between it and the #endif is skipped if the symbol after it has been defined previously. If it has not been defined, it defines it (#define) and then does whatever. It helps keep code and such from being accidentally repeated. The RANDOM_VALUE_YOU_WONT_USE should be replaced with a unique and descriptive title, such as MOTOR_CLASS_SYMBOL for your motor header. One thing to be careful of - don't repeat a title, as it skip the code if it has been defined elsewhere first - (that's what it's meant to do in this case, after all

- So just name it something you know wouldn't be used again - and don't worry about it being long (you'll only be typing it twice, after all)