¿Por qué una función miembro const puede modificar un miembro de datos estático?

En el siguienteC++ programa, modificando unmiembro de datos estáticos a partir de unaconst la función funciona bien:

class A 
{
  public:   
    static int a; // static data member

    void set() const
    {
        a = 10;
    }
};

Pero modificando unmiembro de datos no estático a partir de unaconst la función no funciona:

class A 
{
  public:   
    int a; // non-static data member

    void set() const
    {
        a = 10;
    }
};

¿Por qué puede unconst función miembro modificar unstatic miembro de datos?

Respuestas a la pregunta(4)

Su respuesta a la pregunta