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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Заполнение матрицы через рандом. http://www.cyberforum.ru/cpp-beginners/thread1136046.html
Помогите, пожалуйста, вывести матрицу через рандом #include "stdafx.h" #include <iostream> #include <time.h> using namespace std; // void print_mat(int* mat, int nk, int mk) { int i = 0, j = 0;
C++ Есть отравленный пирог. игроки по очереди выбирают клетки пирога и съедают определить проигравшего! Пирог.Имеется прямоугольный пирог,разрезанный на m×n частей (клеток),причем,левая нижняя клетка пирога отравлена. Игроки по очереди выбирают какую-нибудь клетку пирога и «съедают»ее вместе со всеми клетками,расположенными правее и выше выбранной. Проигрывает тот, кто съедает отравленную клетку. #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <locale.h> #include <iostream>... http://www.cyberforum.ru/cpp-beginners/thread1136005.html
C++ Удаление из строки повторяющихся элементов (через функцию)
Добрый день! #include <iostream> #include <math.h> using namespace std; //Удаление повторяющихся элементов в алфавите void Alphabet_Sort(char* (&alphabet)) {
Код завершения процесса C++
Как можно узнать с каким кодом завершился процесс (код, который он ретурнит из main)? OC: Windows
C++ Таблица футбольного чемпионата http://www.cyberforum.ru/cpp-beginners/thread1135960.html
Всем привет, нужна помощь. Таблица футбольного чемпионата задана в виде двумерного массива из n строк и n столбцов, в котором все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали, равен 3, 1 или 0 (числу очков, набранных в игре: 3 - выигрыш, 1 - ничья, 0 - проигрыш) для каждой команды определить занятое ею место.
C++ сортировка слов vector Добрый день, условие задачи: Все слова исходного файла input.txt записать в файл output.txt без повторений, расположив их в порядке возрастания длины слов. Использовать STL. вот мой код, #include <algorithm> #include <string> #include <fstream> #include <iomanip> #include <vector> using namespace std; подробнее

Показать сообщение отдельно
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
01.04.2014, 18:02     Ссылка на неразрешенный внешний символ
Ошибки:
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru