En C, inicializar un miembro de datos estáticos de tipo const std::string directamente dentro de la definición de clase es no permitido. En su lugar, hay dos opciones para definir dichos miembros de datos:
Utilice una variable en línea, que define e inicializa el miembro estático dentro de la definición de clase:
class A { private: inline static const string RECTANGLE = "rectangle"; };
Defina el miembro estático fuera de la definición de clase y proporcione el inicializador en un archivo de implementación separado:
Archivo de encabezado
class A { private: static const string RECTANGLE; };
Archivo de implementación
const string A::RECTANGLE = "rectangle";
La sintaxis de inicialización de miembros de datos estáticos dentro de la definición de clase solo se admite para tipos integrales y enumerativos. Para tipos no integrales como const std::string, este enfoque no es válido.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3