Por que é necessário repetir o especificador const no momento da definição, se a declaração como const é feita em outro lugar?

Depois de resolveresta questão simples, Eu tive que perguntar:

-> No arquivo H em uma classe ex, um membro estático estático é definido, por exemplo :

class ex {
    const static int my_ex;
};

-> No arquivo CPP, o valor é especificado

ex::my_ex = 32;  

E então obtém-se o erro "declarações conflitantes" (assim como "não nomeia um tipo"). Eu entendo que odefinição no arquivo CPP também é umdeclaração que cria um conflito visto do vinculador, MAS por que apenas sobre oconst especificador (e tipo) e não oestático 1 ? Eu só tenho que escrever

const int ex::my_ex = 32;

para compilar. Mas não estático ... Por que não? Por que não posso apenasdefinir e não repetirdeclaração etapas relacionadas (tipo, identificadores específicos)?

questionAnswers(1)

yourAnswerToTheQuestion