Помогите победить LNK2019
От: av239 Россия http://alexeivasin.com
Дата: 30.05.11 16:20
Оценка:
Пишу класс для работы с матрицами. Определения функций расположены в файле MyMatrix.h, реализация в MyMatrix.cpp, функция main в файле test.cpp.
MyMatrix.h
#include <iostream>

using namespace std;

template <class T> 
class MyMatrix
{
private:
    T **contents;
    int rows;
    int cols;

public:
    MyMatrix(void);
    ~MyMatrix(void);
    
    friend ostream& operator<<(ostream& os, const MyMatrix & m);
};


MyMatrix.cpp
#include <iostream>
#include "MyMatrix.h"

using namespace std;

template <class T>
MyMatrix<T>::MyMatrix(void)
{    
}

template <class T>
MyMatrix<T>::~MyMatrix(void)
{
    for(int i = 0; i < rows; i++)
        free(contents[i]);
    free(contents);
}


test.cpp
#include <iostream>
#include "MyMatrix.h"

using namespace std;

int main()
{
    MyMatrix<int> m;
    
    return 0;
}


При этом возникает ошибка: "error LNK2019: unresolved external symbol "public: __thiscall MyMatrix<int>::MyMatrix<int>(void)"".
Почему линкер не может найти определение конструктора?
cpp linkage
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.