Definindo membros de dados estáticos do tipo const std::string
Em C , definindo um membro const estático privado do tipo std::string dentro de uma classe usando inicialização em classe, conforme mostrado abaixo, não é compatível com o padrão C:
class A { private: static const string RECTANGLE = "rectangle"; }
No entanto, C fornece abordagens alternativas para alcançar essa funcionalidade.
C 17 Variáveis Inline
Desde C 17, você pode usar variáveis inline para este propósito. Uma variável inline é um recurso do C 17 que permite a declaração de uma variável estática diretamente na definição da classe, com a palavra-chave inline. Por exemplo:
// In a header file (if necessary) class A { private: inline static const string RECTANGLE = "rectangle"; };
Abordagem pré-C 17
Antes de C 17, você deve definir o membro estático fora da definição de classe e fornecer o inicializador lá. Aqui está um exemplo:
// In a header file (if necessary) class A { private: static const string RECTANGLE; };
// In one of the implementation files const string A::RECTANGLE = "rectangle";
Nota: A sintaxe de inicialização que você tentou (dentro da definição de classe) só é suportada para tipos integrais e enum.
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