This is a follow up question to the following post: Injecting dependencies (DI) in c++ applications
In a system that uses DI, someone, somewhere should be responsible to create the various objects and "wire" them. I find it difficult to figure out who should do this. I read about one option that it should be the "root class". However, in that case it seems that the root class might be responsible for creating a very large number of objects.
I though of an option to use smaller builder classes that will be used the root class - is that a good way to do it?
Note: I tagged 'C++' in this question because I am developing in C++. I am not sure if it makes any difference to the answer.