every function in
Packet.h
gets a multiple definition error
If you're going to define functions in a header (outside a class definition), you'll need to mark them inline
. This relaxes the One Definition Rule to allow definitions in multiple translation units.
You're still only allowed one definition in each translation unit, so make sure the headers have include guards.