Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
#1

error: LNK2019 - C++

26.05.2011, 19:02. Просмотров 825. Ответов 5
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
shape.h
 
#pragma once
#include "stdafx.h"
 
class Shape
{
...
};
 
std::istream& operator>>(std::istream&,Shape&);
std::ostream& operator<<(std::ostream&,const Shape&);
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
shape.cpp
 
#include "Shape.h"
#include "stdafx.h"
 
const double Shape::PI = 3.1415927;
 
std::istream& operator>>(std::istream& in, Shape* rhs)
{
...
}
 
std::ostream& operator<<(std::ostream& out, /*const*/ Shape& rhs)
{
    rhs.print(out);
    return out;
}
Текст из ошибки в компиляторе: "...referenced in function _wmain".
Ошибка LNK2019 http://msdn.microsoft.com/en-us/libr...8VS.80%29.aspx
"...To resolve this error, provide a definition for symbol or remove the code that references it..."
Прошу помочь разобраться. Объявления присутствуют в заголовке shape.h (см. код выше), определение в shape.cpp(см. код выше). Где собака зарыта?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2011, 19:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос error: LNK2019 (C++):

Error LNK1120, error LNK2019, error LNK2028, queue - C++
// свойство класса Parser queue&lt;elem*&gt;* postfix = new queue&lt;elem*&gt;; // строка, из-за которой происходит ошибка ...

Error LNK2019 и fatal error LNK1120 - C++
Копаюсь в гугле уже часа 2. Не понимаю, в чем проблема. Вроде нигде ошибок в коде нету, но выдает: 1&gt;------ Построение начато:...

Error LNK1120, Error LNK2019 - C++
Здравствуйте . У меня проблема с кодом . #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; ...

Error LNK2019 - C++
Код программы : Source.cpp #include &lt;algorithm&gt; #include &lt;vector&gt; #include &lt;string&gt; #include &quot;read.h&quot; #include &quot;sortWord.h&quot; ...

error LNK2019 - C++
проблема вот в чем пишу некий проект, и никак не могу понять почему ошибка вот строка float median(std::vector&lt;float&gt; v); тут и...

Error LNK2019 - C++
Написал программу, а она выдаёт ошибку &quot;error LNK2019&quot; Вот код программы: #include &lt;iostream&gt; using namespace std; int n; int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
26.05.2011, 19:06 #2
Попробуй в shape.cpp оставить только
C++
1
#include "Shape.h"
без pragmа.
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
26.05.2011, 19:11  [ТС] #3
Цитата Сообщение от Overmind024 Посмотреть сообщение
Попробуй в shape.cpp оставить только
C++
1
#include "Shape.h"
без pragmа.
Не помогло.
HighPredator
5477 / 1843 / 343
Регистрация: 10.12.2010
Сообщений: 5,435
Записей в блоге: 3
26.05.2011, 19:29 #4
Полный текст ошибки приведите.
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
26.05.2011, 19:32 #5
C++
1
2
std::istream& operator>>(std::istream&,Shape&);
std::ostream& operator<<(std::ostream&,const Shape&);
в объявлении у вас в операторе >> второй параметр -- ссылка.
В определении же у вас указатель, а это разные совсем вещи
C++
1
std::istream& operator>>(std::istream& in, Shape* rhs)
Прототипы не совпадают, получается , что тела для того оператора , что в Shape.h был описан, так и нет, вот и ошибка.
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
26.05.2011, 20:00  [ТС] #6
1>4-12.obj : error LNK2019: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Shape const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVShape@@@Z) referenced in function _wmain
1>4-12.obj : error LNK2019: unresolved external symbol "class std::basic_istream<char,struct std::char_traits<char> > & __cdecl operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,class Shape &)" (??5@YAAAV?$basic_istream@DU?$char_traits@D@std@@@std@@AAV01@AAVShape@@@Z) referenced in function _wmain
1>C:\Users\Администратор\Documents\Visual Studio 2010\Projects\Weiss\Ch4\4-12\Debug\4-12.exe : fatal error LNK1120: 2 unresolved externals

И ещё один момент, компилятор этого не сообщает, но в shape.cpp при использовании
C++
1
rhs = new Circle(...) //shape - базовый класс, rhs - указатель на базовый
есть всплывающее сообщение после наведения на new:
a value of type *Circle cannot be assigned to an entity of type *Shape

Добавлено через 25 минут
Разобрался. Но хочу уточнить некоторые моменты.
У меня определена структура
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct PtrToShape
{
public:
    Shape* ptr;
 
    bool operator<(const PtrToShape& rhs) const
    { return *ptr < *rhs.ptr; }
 
    bool operator>(const PtrToShape& rhs) const
    { return *ptr > *rhs.ptr; }
 
    const Shape& operator*() const
    { return *ptr; }
 
    /*Shape& operator*() //непринципиально
    { return *ptr; }*/   //
};
правильно ли понимаю:
main():
C++
1
std::cin >> array[i].ptr; //справа передаётся адрес (содержимое указателя)
для этот мне нужен следующий протоип:
C++
1
std::istream& operator>>(std::istream&,Shape*);
C++
1
2
std::cout << *array[i]; //передаётся ссылка(уверен, что не точный термин) на объект shape по адресу,
                           //на который указывает указатель
для этот мне нужен следующий протоип:
C++
1
std::ostream& operator<<(std::ostream&,const Shape&);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2011, 20:00
Привет! Вот еще темы с ответами:

error LNK2019 - C++
Всем доброго вечера! Вынужден снова воспользоваться помощью опытных мира сего, т.к. перерыв гору материала в сети, ничего путного не...

error LNK2019 - C++
Здравствуйте, есть такое задание: 1. Создать классовые типы - численная квадратная матрица и одномерный массив динамического типа с...

Error LNK2019 - C++
Нашел на просторах сети код, постарался привести ее к рабочему виду и вот уже почти к завершению получил кучу таких еррор линков ...

Error LNK2019 и LNK1120 - C++
Форумчане, помогите кто чем может. изучать язык только начал, поэтому куча вопросов и ошибок, а найденные ответы не сильно помогают, и...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.05.2011, 20:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru