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

Шаблон с++ (Ошибка LNK 2019)

15.03.2015, 15:14. Показов 1048. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не понимаю в чем ошибка, если оставить объявление шаблона функции и реализацию в main то все работает, но если разбить на файлы выскакивает ошибка: "LNK2019: ссылка на неразрешенный внешний символ".

template.h:
C++
1
2
template <typename T>
void swap(T&a,T&b);
template.cpp:
C++
1
2
3
4
5
6
7
8
include "template.h"
template <typename T>
void swap<T>(T&a,T&b){
    T t;
    t=a;
    a=b;
    b=t;
}
main.cpp:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include "template.h"
 
int main(){
    int a,b;
    a=5;
    b=10;
    swap<int>(a,b);
}
Заранее благодарю за помощь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2015, 15:14
Ответы с готовыми решениями:

Работа с tinyxml ошибки LNK 2019 и LNK 2001
всем привет! скачал архив tinyxml, разархивировал в папку проекта затем написал следующий код: ...

LNK 2019 ссылка на неразрешенный внешний символ в функции _main; LNK 1120 неразрешенных внешних элементов: 1
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string.h&gt; #include...

Ошибка LNK 2019 - C++ (Visual Studio 2011)
Доброго времени суток. Помогите пожалуйста разобраться. Не удается запустить проект из 3-х файлов....

error lnk 2019
здраствуйте! решил заняться win api и mfc, открываю книгу &quot;Visual C++. Разработка...

2
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
15.03.2015, 15:55 2
содержимое template.cpp переместить в template.h.
после чего файл template.cpp удалить.
1
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
15.03.2015, 16:00 3
Почему так:
Каждый срр файл компилируется отдельно.
Шаблон же компилироваться не может, т.к. у него неизвестны параметры шаблона.
Поэтому он должен быть в единице компиляции (файле),
которая использует этот шаблон.
1
15.03.2015, 16:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2015, 16:00
Помогаю со студенческими работами здесь

LNK 2019. Visual 2012
Доброго времени суток всем) Сама ошибка компоновщика LINK 2019 как я понимаю возникает, если...

Error LNK 2019. VS 2010
Решил написать программу - суть: попытка создания заготовки для меню. смысл этой проги - тупо...

Выдает ошибку LNK 2019
#include &quot;integer_map.hpp&quot; #include &quot;integer_vector.hpp&quot; #include &lt;iostream&gt; #include...

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


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

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