¿Por qué hay que repetir el especificador const en el momento de la definición, si la declaración como const se realiza en otro lugar?

Después de resolvereste simple problema, Tuve que preguntar:

-> En el archivo H en una clase ex, se define un miembro estático constante, p. :

class ex {
    const static int my_ex;
};

-> En el archivo CPP se especifica el valor

ex::my_ex = 32;  

Y luego se obtiene el error "declaraciones en conflicto" (así como "no nombra un tipo"). Entiendo que eldefinición en el archivo CPP también es undeclaración lo que crea un conflicto visto desde el enlazador PERO por qué solo sobre elconst especificador (y tipo) y no elestático uno ? Solo tengo que escribir

const int ex::my_ex = 32;

para que se compile. Pero no estático ... ¿Por qué no? ¿Por qué no puedo simplemente?definir y no repetirdeclaración pasos relacionados (tipo, identificadores específicos)?

Respuestas a la pregunta(1)

Su respuesta a la pregunta