Почему я получаю ошибки компоновщика при попытке скомпилировать этот код, это в основном код матрицы матриц шаблона, который является сложным. &. Матрица является квадратной матрицей, поэтому, если в нее введен размер «3» означает матрицу из [3] [3], но почему-то это дает мне ошибки, любую помощь?Ошибки компоновщика C++, неразрешенные внешние ссылки
#include <iostream>
#include <iomanip>
using namespace std;
template <class T>
class matrix
{
private:
T** real;
T** imag;
int size;
public:
matrix(int = 0);
friend ostream& operator<<(ostream& out, matrix<T>);
};
// constructor
template <class T>
matrix<T>::matrix(int length)
{
size = length;
real = new T*[size];
for (int i = 0; i < size; i++)
real[i] = new T[size];
imag = new T*[size];
for (int i = 0; i < size; i++)
imag[i] = new T[size];
cout << "Enter real elements of matrix: ";
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
cin >> real[i][j];
cout << "Enter imag elements of matrix: ";
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
cin >> imag[i][j];
}
// functions defined here
template <class T>
ostream& operator<<(ostream& out, matrix<T> arg)
{
out << showpos;
for (int i = 0; i < arg.size; i++)
for (int j = 0; j < arg.size; j++)
out << arg.real[i][j] << arg.imag[i][j] << " ";
out << endl;
return out;
}
int main()
{
matrix <int> obj1(3);
cout << obj1;
}
Вы планировали опубликовать ошибки? –
Мой хрустальный шар (так как ошибок не было опубликовано) говорит, что шаблон был реализован в файле cpp отдельно от main(). – drescherjm