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

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec - C++

Восстановить пароль Регистрация
 
nocl1p
37 / 22 / 10
Регистрация: 30.03.2012
Сообщений: 299
17.06.2014, 15:50     Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec #1
Вот есть заголовочный файл

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Заголовочный файл Vector.h
#ifndef VECTOR_H
#define VECTOR_H
 
#include <iostream>
using namespace std;
 
template<typename T>
class Vector
{
public:
    Vector(T x, T y, T z); // Конструктор класса, который инициализирует трехмерный вектор
    T GetLength(Vector<T> vect); // Метод класса, который находит длину вектора
    Vector<T> Normalize(Vector<T> vect); // Метод класса, который делает вектор единичной длины
    
private:
    T XCoord, YCoord, ZCoord;
    T GetVectorXCoordinate(Vector<T> vect);
    T GetVectorYCoordinate(Vector<T> vect);
    T GetVectorZCoordinate(Vector<T> vect);
};
 
#endif
Дальше файл реализации

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
// Файл реализации класса Vector
#include <iostream>
#include "Vector.h"
using namespace std;
//=================================================================================
template<typename T> Vector<T>::Vector(T x, T y, T z)
{
    const int ArraySize = 2;
    T Array[2] = {0, 0, 0};
 
    Array[0] = x; 
    Array[1] = y;
    Array[2] = z;
 
    XCoord = x;
    YCoord = y;
    ZCoord = z;
}
//=================================================================================
 
//=================================================================================
template<typename T> T Vector<T>::GetVectorXCoordinate(Vector<T> vect)
{
    return XCoord;
}
//=================================================================================
template<typename T> T Vector<T>::GetVectorYCoordinate(Vector<T> vect)
{
    return YCoord;
}
//=================================================================================
template<typename T> T Vector<T>::GetVectorZCoordinate(Vector<T> vect)
{
    return ZCoord;
}
//=================================================================================
template<typename T> T Vector<T>::GetLength(Vector<T> vect)
{
    return sqrt(GetVectorXCoordinate(vect) * GetVectorXCoordinate(vect) 
                + GetVectorYCoordinate(vect) * GetVectorYCoordinate(vect) 
                + GetVectorZCoordinate(vect) * GetVectorZCoordinate(vect));
}
//=================================================================================
И MAIN

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <conio.h>
#include "Vector.h"
using namespace std;
int main()
{
    Vector<int> vect(4, 2, 9);
    std::cout << "444";
 
 
    _getch();
    return 0;
}

Чего компоновщику не хватает? Кто скажет?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2014, 15:50     Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec
Посмотрите здесь:

Ошибка:unresolved external 'My<int>::My<int>(int)' unresolved external 'My<int>::~My<int>' C++
//unresolved external symbol "void_cdecl fun1(int,int)" (&fun1@@YAXHH@Z) referenced in function_main C++
C++ error LNK2019: ссылка на неразрешенный внешний символ "public: int __thiscall KDocument::Open(char const *)" в функции _WinMain@16
C++ error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main
C++ set_difference(vector<pair<int,int>>, vector<int>>
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
17.06.2014, 15:52     Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec #2
Шаблоны должны быть доступны в месте инстанцирования.
nocl1p
37 / 22 / 10
Регистрация: 30.03.2012
Сообщений: 299
17.06.2014, 15:57  [ТС]     Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec #3
Чуть по конкретней, если можно. Я с шаблонами только столкнулся.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
17.06.2014, 16:04     Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Переместите реализацию в заголовок.
nocl1p
37 / 22 / 10
Регистрация: 30.03.2012
Сообщений: 299
17.06.2014, 16:05  [ТС]     Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec #5
ПОДОЖДИ КА! Для шаблонов не существует раздельной компиляции????????
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
17.06.2014, 16:06     Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec #6
Как Вы это себе представляете?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2014, 16:14     Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec
Еще ссылки по теме:

C++ [Linker Error] Unresolved external 'Sort(int, int)' referenced from H:\INFORMATIC\5\UNIT1.OBJ
Ошибка при компиляции error: cannot convert ‘int (*)[5]’ to ‘int**’ for argument ‘1’ to ‘void Replase(int**)' C++
C++ Ошибка линкера: ссылка на неразрешенный внешний символ "public: int __thiscall stack<int>::pop(void)"

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

Или воспользуйтесь поиском по форуму:
nocl1p
37 / 22 / 10
Регистрация: 30.03.2012
Сообщений: 299
17.06.2014, 16:14  [ТС]     Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec #7
Представить я конечно не смог. Просто попробовал реализовать.

Добавлено через 7 минут
Все получилось. Спасибо!
Yandex
Объявления
17.06.2014, 16:14     Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec
Ответ Создать тему
Опции темы

Текущее время: 23:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru