"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como inicializar membros de dados estáticos `const std::string` em C++?

Como inicializar membros de dados estáticos `const std::string` em C++?

Publicado em 2024-12-21
Navegar:986

How to Initialize Static `const std::string` Data Members in C  ?

Declarando membros de dados estáticos do tipo const std::string

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:

Variáveis ​​inline (C 17 ou posterior)

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";
};

Definição externa

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";

Limitações da inicialização em classe

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.

Tutorial mais recente Mais>

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