¿Por qué los miembros de datos de clase no se pueden inicializar mediante la sintaxis de inicialización directa?

Tengo curiosidad por saber por qué los miembros de datos de la clase no se pueden inicializar utilizando la sintaxis (). Considere el siguiente ejemplo:

#include <iostream>
class test
{
    public:
        void fun()
        {
            int a(3);
            std::cout<<a<<'\n';
        }
    private:
        int s(3);    // Compiler error why???
};
int main()
{
    test t;
    t.fun();
    return 0;
}

El programa falla en la compilación y da los siguientes errores.

11  9 [Error] expected identifier before numeric constant

11  9 [Error] expected ',' or '...' before numeric constant

¿Por qué? ¿Cual es la razon? ¿Qué dice el estándar C ++ sobre la inicialización de miembros de datos de clase? Tu ayuda es muy apreciada. Gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta