class matrix
{
public:
int m;
int n;
int mat[m][n];
};
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
[错误]:无效使用非静态数据成员'matrix :: n'
在声明静态时:
class matrix
{
public:
static int m;
static int n;
int mat[m][n]; //Error
};
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
[错误]:数组绑定在']'标记之前不是整数常量
请告诉我这些错误的含义以及如何解决此问题.
C++中的数组大小必须是编译时可评估的.
编译器不知道如何处理,int mat[m][n];因为在编译时不知道值m和n.
如果你想要一个好的可靠矩阵类,那么考虑在Boost中使用BLAS库.A std::vector<std::vector<int>> 可以工作,但它是一个锯齿状的矩阵,内存模型相当差.