Ошибка C ++ LNK2019

0

Мне нужно создать строковое переменное string time и оно должно выглядеть как 14:58.
Я создал функцию

string SetTime() {
long double h = (long double)(rand()%25);
long double m = (long double)(rand()%60);

string hour = to_string(h);
string minutes = (m <= 9 ? "0" : "" ) + to_string(m);

string time = hour + ":" + minutes;
return time;
}

но когда я пытаюсь его использовать

string str = SetNumber();
cout << str;

я получил
error LNK2019: link to unresolved external symbol "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl SetNumber(void)" (?SetNumber@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) in _wmain

Что не так и как это исправить?

Теги:
c++11

2 ответа

3
Лучший ответ

Ваша функция называется SetTime когда вы вызываете SetNumber. SetNumber не может найти определение SetNumber. Интересно, что вы получаете ошибку компоновщика, а не ошибку компилятора. Это означает, что вы объявили SetNumber.

  • 0
    о, прости, такая глупая ошибка, я пытался использовать другие мои функции.
  • 0
    с испорченной инкрементной сборкой может случиться так, что компилятор (в данном случае VC ++) считает, что ему не нужно перекомпилировать вызываемый код, и тогда компоновщик не сможет связать код вызывающей стороны со старым кодом. Полное восстановление должно решить эту проблему.
1

вы должны вызвать SetTime, а не SetNumber

  • 0
    о, прости, такая глупая ошибка, я пытался использовать другие мои функции.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню