#質問を行う経緯
自作の行列演算を行うクラスの作成をしたいです.ただ,制作途中でコンストラクタ含めいろいろなところでエラーが発生したため解決案を知りたいです.
#コード
c++
1 2namespace MY_var{ 3template <class T, ssize_t row, ssize_t col> 4 using square_array = std::array< std::array<T, col> , row>; 5} 6 7/** matrix.hpp **/ 8template <ssize_t row, ssize_t col> 9class Matrix { 10 11 /** 行列 **/ 12 MY_var::square_array<double, row, col> matrix; 13 14 /** 行 **/ 15 int rows; 16 17 /** 列 **/ 18 int cols; 19 20public: 21 22 /** コンストラクタ **/ 23 Matrix(); 24 25 26 /** デストラクタ **/ 27 ~Matrix(); 28}; 29 30/** matrix.cpp **/ 31 32template <ssize_t row, ssize_t col> 33Matrix<row,col>::Matrix(){ 34 this->rows = row; 35 this->cols = col; 36} 37 38 39template <ssize_t row, ssize_t col> 40Matrix<row,col>::~Matrix(){ 41} 42 43/**main.cpp**/ 44 45int main(){ 46 47Matrix<1, 1> *a = new Matrix<1, 1>; 48 49delete a; 50 51return 0; 52}
#エラー内容
Undefined symbol: Matrix<1l, 1l>::Matrix()
Undefined symbol: Matrix<1l, 1l>::~Matrix()
#したいこと
コンストラクタや関数の定義はmatrix.cppで行いたいです.(matrix.hpp内で書く場合は動きます.)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。