Definición de miembros de datos estáticos de tipo const std::string
En C, definición de un miembro constante estático privado de tipo std::string dentro de una clase usando la inicialización en clase, como se muestra a continuación, no cumple con el estándar C:
class A { private: static const string RECTANGLE = "rectangle"; }
Sin embargo, C proporciona enfoques alternativos para lograr esta funcionalidad.
C 17 Variables en línea
Desde C 17, puede usar variables en línea para este propósito. Una variable en línea es una característica de C 17 que permite la declaración de una variable estática directamente dentro de la definición de clase, con la palabra clave en línea. Por ejemplo:
// In a header file (if necessary) class A { private: inline static const string RECTANGLE = "rectangle"; };
Enfoque anterior a C 17
Antes de C 17, debe definir el miembro estático fuera de la definición de clase y proporcionar el inicializador allí. Aquí hay un ejemplo:
// 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: La sintaxis de inicialización que intentó (dentro de la definición de clase) solo se admite para tipos integrales y enumerativos.
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