Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
5 / 5 / 0
Регистрация: 16.04.2013
Сообщений: 59

Ошибка LNK2019

07.02.2023, 12:51. Показов 727. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, ни как не пойму в чем ошибка.

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//Rivet.h
#pragma once
#include <string>
class Rivet
{
private:
public:
    int x;
    int y;
    int z;
    std::string heder;
    Rivet(int);
    Rivet();
    friend std::ostream& operator <<(std::ostream& os, const Rivet& p);
    friend std::istream& operator >>(std::istream& is, const Rivet& p);
 
 
};


Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//Rivet.cpp
#include "Rivet.h"
 
Rivet::Rivet(int _x):x(_x)
{
}
 
Rivet::Rivet()
{
}
 
std::ostream & operator<<(std::ostream & os, const Rivet & p)
{
    return os << p.x;
}
 
std::istream & operator >>(std::istream & is,  Rivet & p)
{
    is >> p.x;
    if (!is)
    {
        p = Rivet();
    }
    return is;
}



функция main такая:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <sstream>
#include <fstream>
#include <vector>
#include <string>
#include "Rivet.h"
#include "Header.h"
 
 
 
void SaveData(std::vector<Rivet> &v)
{
    std::string fileName = "d:\\test.txt";
 
    std::ofstream o(fileName);
 
    for (size_t i = 0; i < v.size(); i++)
    {
        o << v[i] << std::endl;
    }
 
    o.close();
}
//
std::vector<Rivet> LoadData()
{
    std::string fileName = "d:\\test.txt";
    std::vector<Rivet> temp;
 
    std::ifstream oo(fileName);
    if (oo.is_open())
    {
        Rivet r;
 
        
        while (oo >> r)
        {
            temp.push_back(r);
        }
    }
    oo.close();
    return temp;
}
 
 
 
int main()
{
    std::vector<Rivet> r =
    {
        Rivet(43),
        Rivet(433),
        Rivet(432)
    };
 
    SaveData(r);
    LoadData();
 
 
    return 0;
}


сама ошибка:
Кликните здесь для просмотра всего текста

Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка LNK2019 ссылка на неразрешенный внешний символ "class std::basic_istream<char,struct std::char_traits<char> > & __cdecl operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,class Rivet const &)" (??5@YAAAV?$basic_istream@DU?$char_trait s@D@std@@@std@@AAV01@ABVRivet@@@Z) в функции "class std::vector<class Rivet,class std::allocator<class Rivet> > __cdecl LoadData(void)" (?LoadData@@YA?AV?$vector@VRivet@@V?$all ocator@VRivet@@@std@@@std@@XZ) in_out_text C:\Users\user_cse\source\cpp_for_nx\in_o ut_text\in_out_text\in_out_text.obj 1

0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.02.2023, 12:51
Ответы с готовыми решениями:

Ошибка 2 error LNK2019, не пойму в чем ошибка
Выдает такую ошибку: Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ &quot;int __cdecl game(void)&quot; (?game@@YAHXZ) в...

Ошибка LNK2019
Дописала код программы. Из ошибок выдает только вот ЭТО вот: &quot;Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ...

Ошибка LNK2019
Всех с наступающим. Бьюсь на единственной ошибкой линковщика в коде. Сама ошибка похоже в перегрузке оператора умножения в шаблонном...

5
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
07.02.2023, 13:07
Лучший ответ Сообщение было отмечено Alllexx4 как решение

Решение

Объявление:
friend std::istream& operator >>(std::istream& is, const Rivet& p);

Реализация:
std::istream & operator >>(std::istream & is, Rivet & p)
1
5 / 5 / 0
Регистрация: 16.04.2013
Сообщений: 59
07.02.2023, 14:33  [ТС]
Да... А слона то я и не заметил....
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13179 / 6815 / 1821
Регистрация: 18.10.2014
Сообщений: 17,243
07.02.2023, 22:34
Цитата Сообщение от Alllexx4 Посмотреть сообщение
C++
1
2
3
4
5
    is >> p.x;
    if (!is)
    {
        p = Rivet();
    }
В чем смысл p = Rivet(), если конструктор Rivet() все равно порождает мусор в поле x?
0
5 / 5 / 0
Регистрация: 16.04.2013
Сообщений: 59
08.02.2023, 12:01  [ТС]
Если честно, я сам не знаю. Я код брал от сюда https://metanit.com/cpp/tutorial/8.4.php - меня эта часть кода тоже удивила, и я ее пропустил. Но когда тупанул с константой, и начал разбираться в причинах ошибки, эту часть кода добавил.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13179 / 6815 / 1821
Регистрация: 18.10.2014
Сообщений: 17,243
08.02.2023, 17:17
Цитата Сообщение от Alllexx4 Посмотреть сообщение
Если честно, я сам не знаю. Я код брал от сюда https://metanit.com/cpp/tutorial/8.4.php - меня эта часть кода тоже удивила, и я ее пропустил.
По ссылке - много несуразностей, но по крайней мере в коде по ссылке у класса нет явно объявленного конструктора. А у вашего класса - есть.

Это все сильно меняет.

В коде по ссылке эта конструкция будет вызывать обнуление целочисленных полей. А у вас - не будет.

Поэтому ссылаться на код по ссылке вы не можете. Вы этот код уже сильно искоренили, т.е. ваш вариант - это совсем другой код.

---

А, только заметил. Там изначально нет конструкторов, а потом они появляются. То есть и там сильно напортачено на эту тему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.02.2023, 17:17
Помогаю со студенческими работами здесь

LNK2019 ошибка
Здравствуйте! Есть такая проблема, и уже долго не могу понять, в чём тут дело... При компиляции возникают ошибки в функция процессора,...

Ошибка LNK2019
Я только знакомлюсь с c++. Помогите пожалуйста разобраться. Есть такой класс: #pragma once template &lt;class Type&gt; class...

Ошибка LNK2019
Создается библиотека D:\EWIL\EWIL(Old)\EWIL\scr\map editor\Debug\Map Editor.lib и объект D:\EWIL\EWIL(Old)\EWIL\scr\map editor\Debug\Map...

Ошибка LNK2019
Здравствуйте! Скачал игру WarZ точнее исходники, и HackShield(Защита от читеров). Пытаюсь защиту встроить в игру, но потом у меня начали...

Ошибка LNK2019
Добрый день! Программа несложная, но имеет 7 исходных файлов. Выдавая ошибку, компилятор не сообщает, в каком именно файле и на какой...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru