Comment définir correctement une constante statique std::string dans une classe C++ ?
Bonjour à tous ! J'ai commencé à apprendre le C++ et j'ai rencontré un problème avec les constantes statiques dans une classe. Je dois définir un membre de données statique de type `const std::string` à l'intérieur de la classe.
Voici mon code :
```cpp
#include
class MyClass {
public:
static const std::string kAppName = "MyApp"; // Erreur !
};
```
Le compilateur donne une erreur : "error: 'const std::string kAppName' cannot be initialized by a constant expression" ou quelque chose comme "non-const static data member must be initialized out of line". Je sais que pour les types entiers (int, char, etc.) et enum, on peut initialiser directement dans la classe, mais pour std::string cela ne fonctionne pas.
J'ai essayé différentes options : j'ai enlevé const, ajouté constexpr, mais rien n'aide. Sur Internet, on dit qu'il faut définir la constante statique en dehors de la classe, mais je ne comprends pas comment faire correctement. Pouvez-vous m'indiquer comment déclarer et définir une chaîne constante statique dans une classe ?
Je suis également intéressé de savoir : peut-on le faire ?