Статическая константная строка не будет инициализирована

У меня есть несколько статических константных строк в качестве закрытых членов моего класса C ++. Мне известно об объявлении в .h и определении (и инициализации) в практике .cpp. В конструкторе класса я вызываю функцию, которая использует эти статические строки. Удивительно, но в конструкторе строки остаются неинициализированными (пустые строки), что создает проблему.

Может кто-нибудь указать, что здесь может пойти не так? Я работаю с таким использованием статических константных строк все время, но никогда не сталкивался с такими ситуациями.

Обновление: m_data остается пустым в утилите (). У меня есть объект класса Test в качестве частного члена другого класса.

Вот код, который я использую:

// Test.h
class Test
{
public:
  Test();
private:
  void utility();

 static const std::string m_data;
};

// Test.cpp
const std::string Test::m_data = "Data";

Test::Test()
{
utility();
}

void Test::utility()
{
//use m_data here
}

Ответы на вопрос(6)

Ваш ответ на вопрос