При компиляции выдает undefined reference, не могу понять причину
class Test
{
static std::vector<int> vec;
static std::queue<std::string> que;
public:
Test();
};
Test::Test()
{
for(int i =0; i<50; ++i)
{
vec.push_back(i);
que.push(std::to_string(i));
}
std::cout<< vec.size() << " " << que.size()<<"\n";
}
Qt 5.13
Компилятор mingw 7.3.0 32
Решение:
Как подсказали ниже нужно инициализировать статические объекты.
Вот так:
vector<int> Test::vec ;
queue<std::string> Test::que;
По хорошему инициализация объектов должна быть вне класса, но перед реализацией конструктора.