> Am 11.09.2015 um 18:48 schrieb "m...@rpzdesign.com" <m...@rpzdesign.com>: > > Mr Weeks -> You were correct. > > A dependency was touched. And that had a domino effect on untouched code.
You can further reduce the "dependency tree" of your sources by making use of the private "d-pointer" pattern (there is a name for it which currently escapes me - Qt itself makes heavy use). That is, you move the declaration of all your (private/protected) members into a "private class", implemented in the corresponding *.cpp. It gets a bit tricky for protected members, if you need to access them "directly" (without setter/getter) from subclasses. But there's a solution for that, too, with the "d-pointer pattern" - see Qt sources ;) By moving all member declaration and instantiation away from the class *.h header into the *.cpp file you potentially avoid indirect dependencies. Even more, now you can add/change/remove class members without changing the class header! No invalidation of sources which use your class (read: no recompile). Another "trick": pass along arguments as references/pointers and use "forward declarations in your headers (#include the other headers only in your implementation *.cpp files). In general: only #include what's really necessary, where it is necessary. Oh, and don't use libraries which make heavy use of templates such as boost ;) (the last point not to be taken too seriously. But template expansion might generate quite a lot of code, might generate additional dependencies and in general creates additional work for the parser, prolonging compile time in general). Cheers, Oliver _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest