Em C , inicializar um membro de dados estáticos do tipo const std::string diretamente dentro da definição de classe é não permitido. Em vez disso, existem duas opções para definir esses membros de dados:
Use uma variável inline, que define e inicializa o membro estático dentro da definição de classe:
class A { private: inline static const string RECTANGLE = "rectangle"; };
Defina o membro estático fora da definição de classe e forneça o inicializador em um arquivo de implementação separado:
Arquivo de cabeçalho
class A { private: static const string RECTANGLE; };
Arquivo de implementação
const string A::RECTANGLE = "rectangle";
A sintaxe de inicialização de membros de dados estáticos dentro da definição de classe só é suportada para tipos integrais e enum. Para tipos não integrais como const std::string, esta abordagem não é válida.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3