Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
nocl1p
37 / 22 / 17
Регистрация: 30.03.2012
Сообщений: 302
1

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

17.06.2014, 15:50. Просмотров 1386. Ответов 6
Метки нет (Все метки)

Вот есть заголовочный файл

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;
}

Чего компоновщику не хватает? Кто скажет?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2014, 15:50
Ответы с готовыми решениями:

error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main
//Vector.h #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;climits&gt;...

[Linker Error] Unresolved external 'Sort(int near*near ,int, int)
не могу понять в чем ошибка при компиляции ошибок не выдает при запуске...

//unresolved external symbol "void_cdecl fun1(int,int)" (&fun1@@YAXHH@Z) referenced in function_main
создал проект, нужно ввести двумерный массив, потом создать функцию которая...

Изменение конструкции "vector<int> name(const vector<int>& v)"
Здравствуйте, можете подсказать каким образом можно изменить конструкцию...

[Linker Error] Unresolved external 'Sort(int, int)' referenced from H:\INFORMATIC\5\UNIT1.OBJ
понять не могу откуда, собственно, ошибка, да что там. Вот код ...

6
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,803
Записей в блоге: 2
Завершенные тесты: 1
17.06.2014, 15:52 2
Шаблоны должны быть доступны в месте инстанцирования.
1
nocl1p
37 / 22 / 17
Регистрация: 30.03.2012
Сообщений: 302
17.06.2014, 15:57  [ТС] 3
Чуть по конкретней, если можно. Я с шаблонами только столкнулся.
0
Toshkarik
1150 / 867 / 90
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
17.06.2014, 16:04 4
Лучший ответ Сообщение было отмечено nocl1p как решение

Решение

Переместите реализацию в заголовок.
1
nocl1p
37 / 22 / 17
Регистрация: 30.03.2012
Сообщений: 302
17.06.2014, 16:05  [ТС] 5
ПОДОЖДИ КА! Для шаблонов не существует раздельной компиляции????????
0
Toshkarik
1150 / 867 / 90
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
17.06.2014, 16:06 6
Как Вы это себе представляете?
1
nocl1p
37 / 22 / 17
Регистрация: 30.03.2012
Сообщений: 302
17.06.2014, 16:14  [ТС] 7
Представить я конечно не смог. Просто попробовал реализовать.

Добавлено через 7 минут
Все получилось. Спасибо!
0
17.06.2014, 16:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2014, 16:14

[ilink32 Error] Error: Unresolved external 'List::heapSort(int *, int)' referenced from C:\USERS\LUTEN\DOCUMENTS\EMBARCA
#pragma hdrstop #pragma argsused #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>)
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b'...

Нюансы синтаксиса: что означает запись vector<int*> a и vector <int>*a ?
Часто встречается вот такая запись: vector&lt;int&gt; a; это понятно что. Массив...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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