Sé que en C++ la declaración de miembros en el encabezado de la clase define el orden de inicialización. ¿Puede decirme por qué C ++ elige este diseño? ¿Hay algún beneficio para forzar el orden de inicialización en lugar de seguir la lista de inicializadores?
Los constructores podrían sobrecargarse mientras que el destructor no. Si los miembros de datos se pueden inicializar en un orden diferente para diferentes constructores, entonces el destructor no puede garantizar la destrucción de los miembros de datos en el orden inverso al de su construcción (para objetos construidos por diferentes constructores).