C++ static против не статических членов класса

У меня есть класс, давайте назовем это FooFoo не компилируется, когда я включаю следующую строку в класс в заголовке.

static std::vector<UnvalidatedSocket*> unvalidatedSockets;

и следующая строка в cpp.

            Foo::unvalidatedSockets.push_back(new UnvalidatedSocket(ClientSocket));

когда я возьму staticКлючевое слово прочь компилируется просто отлично. Я проверил круговые включения, но их нет.

Ошибка LNK2001, unresolved external symbol

Почему это происходит? Участвуют ли статические ученики раньше?

1 ответ

Решение

Вам нужно инициализировать ваш статический член где-нибудь в файле CPP, прежде чем пытаться что-то вставить в него. Добавьте что-то вроде этого:

std::vector<UnvalidatedSocket*> Foo::unvalidatedSockets;
Другие вопросы по тегам