Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
 Аватар для MayaNash
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249

Ссылка на неразрешенный внешний символ

01.04.2014, 18:02. Показов 1756. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ошибки:
1>Щербаков 2.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall matrix<int>::~matrix<int>(void)" (??1?$matrix@H@@QAE@XZ) в функции _main
1>Щербаков 2.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall matrix<int>::matrix<int>(void)" (??0?$matrix@H@@QAE@XZ) в функции _main

Но конструктор и деструктор определены, откуда такие ошибки?

matrix.h:
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
#pragma once
 
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
#include <conio.h>
#include <iomanip>
using std::setw;
 
template <class Type>
class matrix
{
public:
    matrix();
    ~matrix();
 
    void read();
    void print() const;
    void getRows();
    void getColms();
 
    Type operator()(int, int) const ;
    void operator += (const matrix &);
    void operator -= (const matrix &);
    void operator *= (const matrix &);
 
private:
    void clear();
 
    Type **matr;
    int rows,colms;
};
matrix.cpp:
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include "matrix.h"
 
template <class Type>
matrix<Type>::matrix()
{
    rows = 0;
    colms = 0;
    matr = NULL;
    cout << "Создана матрица 0х0\n\n";
}
 
template <class Type>
matrix<Type>::~matrix()
{
    clear();
    cout << "Матрица удалена\n\n";
}
 
template <class Type>
void matrix<Type>::clear()
{
    if (matr != NULL)
    {
        for (int i = 0; i < rows; i++)
            delete [] matr[i];
        delete [] matr;
    }
    cout << "Память освобождена\n\n";
}
 
template <class Type>
void matrix<Type>::read()
{
    rows = getRows();
    colms = getColms();
 
    clear();
    matr = new Type*[rows];
    cout << "Введите матрицу:\n";
    for (int i = 0; i < rows; i++)
    {
        matrix[i] = new Type[colms];
        for (int j = 0; j < colms; j++)
            cin >> matr[i][j];
    }
    cout << endl;
}
 
template <class Type>
void matrix<Type>::getRows()
{
    do
    {
        cout << "Введите количество строк: ";
        cin >> rows;
    }
    while (rows <= 0);
    cout << endl;
}
 
template <class Type>
void matrix<Type>::getColms()
{
    do
    {
        cout << "Введите количество столбцов: ";
        cin >> colms;
    }
    while (colms <= 0);
    cout << endl;
}
 
template <class Type>
void matrix<Type>::print() const
{
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < colms; j++)
            cout << setw(4) << matr[i][j];
        cout << endl;
    }
    cout << endl;
}
 
template <class Type>
Type matrix<Type>::operator()(int row, int col) const
{
    return matr[row][col];
}
 
template <class Type>
void matrix<Type>::operator += (const matrix &right)
{
    if (rows != right.rows || colms != right.colms)
    {
        cout << "Размеры матриц не совпадают!\n\n";
        getch();
        return;
    }
    for (int i = 0; i < rows; i++)
        for (int j = 0; j < colms; j++)
            matr[i][j] += right.matr[i][j];
    cout << "Сложение прошло успешно\n\n";
}
 
template <class Type>
void matrix<Type>::operator -= (const matrix &right)
{
    if (rows != right.rows || colms != right.colms)
    {
        cout << "Размеры матриц не совпадают!\n\n";
        getch();
        return;
    }
    for (int i = 0; i < rows; i++)
        for (int j = 0; j < colms; j++)
            matr[i][j] -= right.matr[i][j];
    cout << "Вычитание прошло успешно\n\n";
}
 
template <class Type>
void matrix<Type>::operator *= (const matrix &right)
{
    if (colms != right.rows)
    {
        cout << "Количество столбцов в первой матрице не совпадает с количеством столбцов во второй матрице!\n\n";
        return;
    }
 
    Type res;
    for (int i = 0; i < rows; i++)
        for (int j = 0; j < colms; j++)
        {
            for (int ii = 0, res = 0; ii < rows; ii++)
                res += matr[i][ii] + right[ii][j];
            matr[i][j] = res;
        };
    cout << "Умножение прошло успешно\n\n";
}
Щербаков 2.cpp:
C++
1
2
3
4
5
6
7
8
9
#include "matrix.h"
 
int main()
{
    setlocale(LC_ALL,"rus");
    matrix<int> obj;
    getch();
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2014, 18:02
Ответы с готовыми решениями:

Ссылка на неразрешенный внешний символ
Identification_Organisation.h: #pragma once #include&lt;string&gt; using namespace std; class Main_Organisation { int...

Ссылка на неразрешенный внешний символ
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ &quot;void __cdecl phyRestoreConsoleAttributes(void)&quot;...

Ссылка на неразрешенный внешний символ
Здравствуйте. Пробую сделать что-то вроде map. Ошибка при создании объекта. #pragma once #include &lt;iostream&gt; template...

2
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
01.04.2014, 18:08
Керра, реализацию шаблонных функций следует перенести в заголовочный файл.
1
 Аватар для MayaNash
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
01.04.2014, 18:20  [ТС]
Благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2014, 18:20
Помогаю со студенческими работами здесь

Ссылка на неразрешенный внешний символ
Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ &quot;public: struct EQUIPMENT_ESSENCE * __thiscall...

Ссылка на неразрешенный внешний символ
На этапе компиляции вылетает следующая ошибка: LNK2019 ссылка на неразрешенный внешний символ &quot;void __cdecl...

Ссылка на неразрешенный внешний символ
Добрый день всем! Помогите пожалуйста студенту, не пойму, то ли лыжи не едут, то ли май месяц на дворе, первая лаба по ООП, подучил теорию,...

Ссылка на неразрешенный внешний символ
Строка 36 PathStripToRoot(szRoot); Вызывает ошибки: Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ...

Ссылка на неразрешенный внешний символ
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;ctype.h&gt; #include &quot;stdafx.h&quot; #define LENGTH 100 ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru