1)
I had classes that could be constructed with varying numbers of initialization parameters such as { { 1,2,4 }, { 5,3,3,2 } } To simplify this and shorten the initialization list for the main function, I created a class which dynamically allocates the memory to be passed in this parameter as a single argument, (depending on an enum type argument). http://pastebin.com/uYvJ7RwX
2) (this one I haven't implemented yet but could be done easier than above)
Let's say I have two objects in a dependent relationship (but they can also exist independently) and I want to have a single function to initialize this arrangement (the parent object). However both take a rather longer list of parameters. Here I want the convenience of maybe passing a static instance of one of these initializer objects to reduce the number of parameters needed.