Почему при использовании переменной в методе, выдает ошибку Linker Tools Error LNK2001?
Почему при использовании переменной в методе, выдает ошибку
class Test
{
  static std::string question;

Потому что статическое поле класса нужно определить, его упоминание в определении класса -- это не определение. Определить его можно например так в .cpp вне всех функций:
std::string Test::question;
В добавлении к ответу в jcmvbkbc 
В C++17 добавили возможность использования inline для переменных и тогда код в header'e можно записать так:

inline static std::string question = 42;