このテンプレートの特殊化を機能させるのに少し問題があります。私はこのトピックに慣れていないので、これを完全に解体した可能性は十分にあります。
一般的なテンプレートは正常に機能しましたが、int の仕様を作成しようとすると、「'Matrix' の行外の定義が Matrix int> の宣言と一致しません。
今は一致していると思いますが、明らかに何かが間違っているに違いありません。あなたは何を言いますか?また、失礼ではありませんが、「実際にはSTLからXを使用する必要があります」というコメントはあまり役に立ちません。割り当てのためにこれを理解しなければなりません。乾杯!
template<typename T>
class Matrix
{
public:
Matrix(int vert, int edge);
~Matrix();
T* & operator[](int index);
std::ostream& operator<<(std::ostream&);
Matrix<T> operator*(Matrix<T>);
int numVerticies();
int numEdges();
private:
T** matrix;
int verticies;
int edges;
const int summation(T** mat1, int, Matrix<int> mat2, int, int verts);
};
template<>
class Matrix<int>
{
public:
Matrix(int vert, int edge);
~Matrix();
int*& operator[](int index);
std::ostream& operator<<(std::ostream&);
Matrix<int> operator*(Matrix<int>);
int numVerticies();
int numEdges();
private:
int** matrix;
int verticies;
int edges;
const int summation(int** mat1, int, Matrix<int> mat2, int, int verts);
};
包含方法を使用して他のメンバーと一緒に持ち込まれた:
template<int>
Matrix<int>::Matrix(int vert, int edge)
{
matrix = new int* [vert];
for (int i=0; i<vert; i++) {
matrix[i] = new int[vert];
}
verticies = vert;
edges = edge;
for (int i=0; i<vert; i++) {
for (int j=0; j<vert; j++) {
matrix[i][j]=0;
}
}
}