Hello there,
I have read that the order of the initializer list in the ctor should follow the order in which the data members were declared, but i don't get any errors when i brake that rule ?
Is there something wrong with my compiler or what ?
It's not a rule, it's a recommendation. Regardless of which order you use in the constructor initializer list, the members are always initialized in the order they are declared. The recommendation is so that you don't get confused.