У меня есть класс, назовем его Foo
Foo
не компилируется, когда я включаю следующую строку в класс в заголовке.C++ static vs non static class members
static std::vector<UnvalidatedSocket*> unvalidatedSockets;
и следующая строка в cpp.
Foo::unvalidatedSockets.push_back(new UnvalidatedSocket(ClientSocket));
, когда я беру static
ключевое слово прочь компилирует просто отлично. Я проверил круглые, но их нет.
Ошибка LNK2001, unresolved external symbol
Почему это происходит? Включить ли статические члены класса раньше?
Статические элементы должны быть инициализированы не только объявленными. Добавьте 'std :: vector Foo :: unvalidatedSocket;' в ваш файл cpp. –
Quest
Не говорите никому, какую ошибку вы получаете, это было бы гораздо интереснее для людей, чтобы догадаться ... – Slava
Darnit .. Мне действительно не нравится, что вам нужно удвоить объявление в C++. (Ну, на самом деле не объявляйте двойное объявление.) Кажется, что все еще есть материал, который может изучить javadevelopper. – blipman17