我正在尝试使用模板,但它不起作用,错误是:"此前在此宣布"
这是我的Matrix.h文件:
#ifndef MATRIX_H
#define MATRIX_H
template <class T>
class Matrix
{
public:
Matrix(int); // default cunstractor
private:
int rows, columns;
};
#include "Matrix.cpp"
#endif
这是我的Matrix.cpp文件
#include "Matrix.h"
#include<iostream>
using namespace std;
template <class T>
Matrix<T>::Matrix(int a) // Default constructor
{
columns = a;
rows = 0;
}
这是主文件:
#include<iostream>
#include "Matrix.h"
using namespace std;
int main()
{
Matrix<int> m1(5);
return 0;
}
我知道代码看起来非常愚蠢和简单,但是我写了更多内容,我将它简化为非常简单的代码,并且它再次起作用。即使我删除了
#include "Matrix.cpp"
在Matrix.h文件中,但仍有问题。
答案 0 :(得分:1)
将matrix.cpp文件的内容(模板定义)移动到matrix.h。