У меня возник следующий вопрос.
Есть класс:
template<typename Type, int countRow, int countCol>
class MiniMaxCriterion
{
public:
MiniMaxCriterion(Type (&matrix)[countRow][countCol]);
void CalculateResults();
void GetResults(Type* result, int& size);
private:
Type* Matrix_;
int CountRow_;
int CountCol_;
Type* Result_;
};
Вот его реализация:
#include "minimaxcriterion.h"
template<typename Type, int countRow, int countCol>
MiniMaxCriterion<Type, countRow, countCol>::MiniMaxCriterion(Type (&matrix)[countRow][countCol])
: CountRow_(countRow)
, CountCol_(countCol)
{
...
}
template<typename Type, int countRow, int countCol>
void MiniMaxCriterion<Type, countRow, countCol>::CalculateResults()
{
...
}
template<typename Type, int countRow, int countCol>
void MiniMaxCriterion<Type, countRow, countCol>::GetResults(Type *result, int& size)
{
...
}
Есть другой класс, который создает объект класса MiniMaxCriterion:
MainWidget::MainWidget(QWidget *parent) :
QWidget(parent)
{
double matrix[2][2] = {{1, 100},
{1.1, 1.1}};
MiniMaxCriterion<double, 2, 2> mini(matrix);
}
При линковке получаю следующую ошибку:
C:\Project\TPR\mainwidget.cpp:-1: ошибка: undefined reference to `MiniMaxCriterion<double, 2, 2>::MiniMaxCriterion(double (&) [2][2])'
В чем проблема?