If a class changes (or a struct, or an enum, or a typedef, or a template, or ... /anything/ ...) then anything which uses it must be recompiled. That's just how it works. Most people have a build system to automate this. (make, dsss, whatever). It's not hard. Basically you just rebuild all the dependencies.