Cómo definir correctamente una constante estática std::string en una clase C++?
¡Hola a todos! Empecé a estudiar C++ y me encontré con un problema al trabajar con constantes estáticas en una clase. Necesito definir un miembro de datos estático de tipo `const std::string` dentro de la clase.
Aquí está mi código:
```cpp
#include
class MyClass {
public:
static const std::string kAppName = "MyApp"; // ¡Error!
};
```
El compilador muestra un error: "error: 'const std::string kAppName' cannot be initialized by a constant expression" o algo como "non-const static data member must be initialized out of line". Sé que para tipos enteros (int, char, etc.) y enum se puede inicializar directamente en la clase, pero para std::string no funciona.
Probé diferentes opciones: quité const, agregué constexpr, pero nada ayuda. En internet dicen que hay que definir la constante estática fuera de la clase, pero no entiendo cómo hacerlo correctamente. ¿Pueden indicarme cómo declarar y definir una cadena constante estática en una clase?
También me interesa saber: ¿se puede hacer esto?
No answers yet.
Inicia sesión para dejar una respuesta
Blogs