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

Ссылка на неразрешённый внешний символ

24.08.2020, 17:23. Показов 1694. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал перегрузку оператора "<<" ,при компиляции выдаёт ошибку "Ошибка LNK2019 ссылка на неразрешенный внешний символ "void __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Person const &)" (??6@YAXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@ABVPerson@@@Z) в функции _main."
Как это можно исправить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Class.h
#include <iostream>
class Person
{
private:
    char name[19];
    int CI;
public:
    Person();
    Person(const char* Name, int ci);
    Person(int ci = 50, const char* Name = "NoName");
    char* getName();
    void change_CI(int new_CI);
    friend void operator <<(std::ostream& os, const Person& pl);
    int getCI();
 
};
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
//Class.cpp
#include "Class.h"
 
Person::Person(const char *Name, int ci)
{
    strcpy_s(name, 19, Name);
    CI = ci;
}
Person::Person(int ci, const char *Name)
{
    strcpy_s(name, 19, Name);
    CI = ci;
}
Person::Person()
{
    strcpy_s(name, 19, "NoName");
    CI = 50;
}
void Person::change_CI(int new_CI)
{
    CI = CI + new_CI;
}
void operator<<(std::ostream &os,Person& pl)
{
    os<< "Name:" << pl.getName() << "\nCI:" << pl.getCI();
}
char* Person::getName()
{
    return this->name;
}
int Person::getCI()
{
    return this->CI;
}
C++
1
2
3
4
5
6
7
8
9
10
//Main.cpp
#include "Class.h"
 
int main()
{
    Person pr(50,"lskkvej");
    std::cout<<pr;
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.08.2020, 17:23
Ответы с готовыми решениями:

Ссылка на неразрешенный внешний символ
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #define n 5 void InKeyboard(int a)...

Ссылка на неразрешенный внешний символ
Здравствуйте. Пробую сделать что-то вроде map. Ошибка при создании объекта. #pragma once...

Ссылка на неразрешенный внешний символ
Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ &quot;public: struct EQUIPMENT_ESSENCE *...

Ссылка на неразрешенный внешний символ
Identification_Organisation.h: #pragma once #include&lt;string&gt; using namespace std; class...

1
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
24.08.2020, 17:28 2
Лучший ответ Сообщение было отмечено novichok875 как решение

Решение

Цитата Сообщение от novichok875 Посмотреть сообщение
void operator<<(std::ostream &os,Person& pl)
{
    os<< "Name:" << pl.getName() << "\nCI:" << pl.getCI();
}
const потерял - void operator<<(std::ostream &os, const Person& pl)

Добавлено через 1 минуту
И этот оператор должен возвращать ссылку на std::ostream
C++
1
 friend std::ostream &operator <<(std::ostream& os, const Person& pl);
0
24.08.2020, 17:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.08.2020, 17:28
Помогаю со студенческими работами здесь

Ссылка на неразрешенный внешний символ
Понимаю что ошибка с вызовом функции InitializeMatrix, связанная с неправильным использованием...

Ссылка на неразрешенный внешний символ
Добрый день всем! Помогите пожалуйста студенту, не пойму, то ли лыжи не едут, то ли май месяц на...

Ссылка на неразрешенный внешний символ
Добрый вечер. Программа состоит из нескольких компонентов main.cpp, func.cpp и module .h При...

Ссылка на неразрешенный внешний символ
//Структура пользователя программой struct User { char* Login; char* Password; }; ...

Ссылка на неразрешенный внешний символ
Здравствуйте, мне нужна ваша помощь, уже час бьюсь но не могу решить данную проблему. Вообщем,...

Ссылка на неразрешенный внешний символ
VS 12 выдает такую ошибку Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ &quot;public:...


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

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