Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 29.06.2014
Сообщений: 179
1

Error LNK2001: unresolved external symbol

26.09.2014, 02:21. Показов 1972. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрий день, нуждаюсь в помощи.

При вызове метода Adding из класса StudentManipulator возникает ошибка вида
Error 2 error LNK2001: unresolved external symbol "public: static class std::vector<class Student,class std::allocator<class Student> > StudentsBD:ataBase" (?DataBase@StudentsBD@@2V?$vector@VStudent@@V?$allocator@VStudent@@@std@@@std@@A ) laba 2.4

код
C++
1
2
3
4
void StudentsBD::Add_New_Student()
    {
        StudentManipulator::Adding(DataBase);
    }
А в самом классе StudentManipulator

C++
1
2
3
4
5
void StudentManipulator::Adding(vector<Student> DataBase)
{
    cin >> DataBase;
// >> перегружен
}

Причем если закомментировать строку StudentManipulator::Adding(DataBase); , то все становится нормально.

Добавлено через 27 минут
ошибка
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2014, 02:21
Ответы с готовыми решениями:

Error LNK2001: unresolved external symbol
error LNK2001: unresolved external symbol &quot;void __cdecl SearchFile(char *,char *)&quot;...

error LNK2001: unresolved external symbol
Здравствуйте. Начала изучать С++ по Либерти. На шаблонах компилятор начал выдавать ошибки. Вроде...

Ошибка: error LNK2001: unresolved external symbol _WinMain@16
При определении макроса UNICODE error LNK2001: unresolved external symbol _WinMain@16

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Помогите разобрать в ошибке. LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol...

4
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.09.2014, 02:59 2
Не видит определения
C++
1
StudentsBD::DataBase
Чтобы сказать почему - мало кода.
0
1 / 1 / 0
Регистрация: 29.06.2014
Сообщений: 179
26.09.2014, 09:38  [ТС] 3
class StudentsBD
{
public:
static vector<Student> DataBase;
0
2276 / 1767 / 741
Регистрация: 27.07.2012
Сообщений: 5,250
26.09.2014, 10:15 4
Где-то в .cpp файле (например, где определения функций StudentsBD) напиши:
C++
1
vector<Student> StudentsBD::DataBase;
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.09.2014, 10:42 5
Цитата Сообщение от IConstructor Посмотреть сообщение
C++
1
static vector<Student> DataBase;
статические поля класса не интегральных типов (а иногда и интегральных тоже) надо где-то ещё и определять (т.е. чтобы выделилась под него память), а данная запись есть всего лишь объявление. Для решения проблемы см. сообщение #4.

Дополнительно хотел бы заметить, что в большинстве случаев не стоит передавать большие объекты по значению:
Цитата Сообщение от IConstructor Посмотреть сообщение
C++
1
void StudentManipulator::Adding(vector<Student> DataBase)
Тем более, что потом идет чтение из потока ввода в локальную переменную.
В данном случае следовало бы передавать ссылку:
C++
1
void StudentManipulator::Adding(vector<Student>& DataBase)
Но тут снова проблема, т.к. DataBase это поле (к тому же статическое) в классе.
Поэтому чтобы окончательно решить, что же тут должно быть не плохо было бы услышать, что же действительно тут задумано.
0
26.09.2014, 10:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2014, 10:42
Помогаю со студенческими работами здесь

Error LNK2001: "unresolved external symbol _main"
вот программа: #include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; class Mas_2d {...

Виртуальные классы и ошибка "Error LNK2001: unresolved external symbol"
Решил перелезть с C# на C++. Ну или по крайней мере немного его подучить для самообразования. В C#...

Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)"
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double Akk(double x, double y, double...

Error LNK2019: unresolved external symbol
Доброго дня, программисты. Пишу синтезатор на Microsoft Visual C++ 2010 Express. Столкнулся с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru