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

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

Войти
Регистрация
Восстановить пароль
 
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
#1

Ошибка "ссылка на неразрешенный внешний символ" - C++

28.04.2011, 22:41. Просмотров 974. Ответов 4
Метки нет (Все метки)

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#ifndef class_H
#define class_H
 
#include "stdafx.h"
#include "iostream"
 
#include "algorithm"
#include "iterator"
 
using namespace std;
 
template <typename Type>class Queue 
{
 
    int front, back;
    int mx;
    Type*data;
public:
    Queue (int mx);
    Queue(const Queue& obj);
    Queue();
    ~Queue();
.....................................
 
};
 
#endif
////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "class.h"
 
/////////////////////конструктори
 
template <typename Type> Queue<Type>::Queue ()
{
    mx= 15;
    data = new Type[mx];
    back =-1; 
    front = 0;
}
template <typename Type> Queue<Type>::Queue (int mx)
{
    this->mx =mx;
    data = new Type[mx];
    back =-1; 
    front = 0;
}
template <typename Type> Queue<Type>::Queue (const Queue& obj)
{
    mx = obj.mx;
    if(mx)
        Data = new Type[mx];
    back = obj.back;
    front = obj.front;
    if(!obj.empty())
        copy(obj.data,obj, data+mx, data);
 
}
template <typename Type> Queue<Type>::~Queue()
{
    delete[]data;
    back =front = 0;
}
 
 
...........................................................................
/////////////////////////////////////////////////////////////////////////////////////////////
int _tmain(int argc, _TCHAR* argv[])
{
 
     Queue <int> q1(15);
    
    system("pause");
 
    return 0;
}
вылетает ошибка при компиляции
lr 12.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Queue<int>::~Queue<int>(void)" (??1?$Queue@H@@QAE@XZ) в функции _wmain
lr 12.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Queue<int>::Queue<int>(int)" (??0?$Queue@H@@QAE@H@Z) в функции _wmain
E:\AMP LR\lr 12\Debug\lr 12.exe : fatal error LNK1120: 2 неразрешенных внешних элементов
в чём проблема? конструкторы ведь я прописал...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2011, 22:41     Ошибка "ссылка на неразрешенный внешний символ"
Посмотрите здесь:

Циклы с выключателем и ошибка "ссылка на неразрешенный внешний символ" - C++
код такой получился main #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; using namespace std; double...

Ошибка "LNK2019 ссылка на неразрешенный внешний символ" - C++
допустим есть файл A.h в котором записано следующее template &lt;typename T&gt; class A { public: A(); }; и есть файл A.cpp ...

Странная ошибка - "ссылка на неразрешенный внешний символ" - C++
Пишу я код, решил скомпилировать. Код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; class Num{ int numb;...

Ошибка "ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup" - C++
template&lt;class T&gt; void quickSortR(T* a, long N) { // На входе - массив a, a - его последний элемент. long i = 0, j = N; ...

Ошибка в приложении: "error LNK2019: ссылка на неразрешенный внешний символ" - C++
Создал консольное приложение и в него добавил код: #include &quot;afxwin.h&quot; // MFC Основные и стандартные компоненты class CMainWnd :...

Дружественная функция шаблон и ошибка "Ссылка на неразрешенный внешний символ" - C++
#include &lt;iostream&gt; using namespace std; template&lt;class T&gt; class random; template&lt;class T&gt; void f(random&lt;int&gt;); ...

Ошибка: ссылка на неразрешенный внешний символ "void __cdecl fifth(int)" (?fifth@@YAXH@Z) - C++
Столкнулся с такой ошибкой: ссылка на неразрешенный внешний символ &quot;void __cdecl fifth(int)&quot; (?fifth@@YAXH@Z) в функции _main и не знаю,...

Шаблонная функция в простом классе и ошибка "Ссылка на неразрешенный внешний символ" - C++
файл: A.h class A { public: template&lt;class T&gt; T func(T); }; файл: A.cpp

Ошибка в классе Vegetatable "LNK2019 ссылка на неразрешенный внешний символ _main" - C++
Добрый день, дано условие : &quot;Создать класс Vegetable, содержащий следующие элементы: - поле «вес» float Mass; - поле «зрелость» ...

Ошибка ссылка на неразрешенный внешний символ "long __cdecl time_to_secs(struct Time)" - C++
#include&lt;iostream&gt; using namespace std; ///////////////////////////////// struct Time { int hours; int minutes; int...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
28.04.2011, 22:45     Ошибка "ссылка на неразрешенный внешний символ" #2
Для шаблонов описание и реализация должны находиться в одном файле, иначе компилироваться не будет.
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
29.04.2011, 07:21  [ТС]     Ошибка "ссылка на неразрешенный внешний символ" #3
спасибо.. я то парюсь......

Добавлено через 49 минут
блин опять вылазит.... добавил всё в один хеадер
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
////в классе
...........
friend ostream &operator<<(ostream &s, const Queue<Type>& obj);
............
/////////////реализация
  template <typename Type> ostream operator <<(ostream &s, const Queue<Type>& obj)
{
    cout<<endl;
    if(obj.empty())
        cout<<"\nQueue is empty";
else
{
    for(int i = obj.front ; i=<obj.back; i++)
    {
        if((i+1)==obj.mx)
            i = 0;
        cout<<obj.data[i]<<" ";
    }
}
    return s;
}
error LNK2019: ссылка на неразрешенный внешний символ "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Queue<int> const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?$Queue@H@@@Z) в функции _wmain
Добавлено через 7 часов 46 минут
неужели никто не знает?
slice
32 / 75 / 4
Регистрация: 04.11.2010
Сообщений: 249
29.04.2011, 07:25     Ошибка "ссылка на неразрешенный внешний символ" #4
Цитата Сообщение от mansp Посмотреть сообщение
ошибка линковки при компиляции
ЛОЛ )) Может быть ошибка линковки при линковке?
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
29.04.2011, 11:51     Ошибка "ссылка на неразрешенный внешний символ" #5
mansp, так как метод вывода в поток это не метод класса Queue, то и определить шаблон ему надо отдельно.
C++
1
friend std::ostream& operator<<<T>(std::ostream& os, const Foo<T>& foo);
Цитата Сообщение от slice Посмотреть сообщение
Может быть ошибка линковки при линковке?
Простите, а при чем еще (кроме линковки) может произойти ошибка линковки?
Yandex
Объявления
29.04.2011, 11:51     Ошибка "ссылка на неразрешенный внешний символ"
Ответ Создать тему
Опции темы

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