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)?