I am making a matrix template class it is declared as follows:
Code:
template <typename T>
class CMatrix
{
private:
vector<vector<T> > matrix;
int numCols;
int numRows;
public:
CMatrix(void)
{
numCols=1;
numRows=1;
matrix.resize(numRows);
matrix[1].resize(numCols);
}
CMatrix(int nCols,int nRows);//to initialize a Matrix
~CMatrix(void);
int GetNumCols();
int GetNumRows();
void SetNumCols();
void SetNumRows();
int InsertColumn(vector<T> col);
int InsertRow(vector<T> row);
int InsertColumnAt(vector<T> col, int index);
int InsertRowAt(vector<T> row, int index);
vector<T> RemoveColumnAt(int index);
vector<T> RemoveRowAt(int index);
T GetElementAt(int row, int col);
int SetElementAt(T element, int row, int col);
int AddMatrix(CMatrix<T> m);
int SubtractMatrix(CMatrix<T> m);
int MultiplyMatrix(CMatrix<T> m);
int DivideMatrix(CMatrix<T> m);
int AddScalar(int scalar);
int SubtractScalar(int scalar);
int MultiplyScalar(int scalar);
int DivideScalar(int scalar);
int RotateX(int angle);
int RotateY(int angle);
int RotateZ(int angle);
int Transpose();
int LeastSquares();
int Inverse();
};
The function I have problems with is the constructor that takes 2 integer parameters to define the size of the matrix:
template <typename T>
CMatrix<T>::CMatrix(int nCols, int nRows)
{//create a new matrix of size nRows x nCols
numCols=nCols;
numRows=nRows;
matrix.resize(numRows);
for(int i=0; i<numRows;i++){
matrix[i].resize(numCols);
}
}
When I declare a variable of type CMatrix and use this constructor:
Code:
CMatrix <int> test(5,10);
I get the compiler error C2059: syntax error: 'constant'
I am using Visual C .Net
I can't find any explanation for this specific C2059 error. Any help would be appreciated.
Thanks.
Sara