I'm not completely sure of what you are trying to do but I'll address what I believe is the root problem and see if that answers the question.
Objects are constructed in the opposite order of derivation. In your case if you removed everything from your initializer list; the constructor for A is called, then AA and finally AAA.
So when the compiler tries to build AAA; since you did not tell it how to contrust A, it looks for a default constructor that dosn't exist.
As far as initialization lists goes, the values normally are set in the order they appear in class and not the order in the list.
If that dosn't clear it up, let me know and I'll try to explain it in a different way.
__________________
A clear conscience is usually the sign of a bad memory.
|