class matrix
{
public:
int m;
int n;
int mat[m][n];
};
我收到此错误:
[错误]:无效使用非静态数据成员'matrix :: n'
在声明静态时:
class matrix
{
public:
static int m;
static int n;
int mat[m][n]; //Error
};
我收到此错误:
[错误]:数组绑定在']'标记之前不是整数常量 请告诉我这些错误的含义以及如何解决这个问题。
答案 0 :(得分:5)
C ++中数组的大小必须是编译时可评估的。
编译器不知道如何处理Chaise[] chair = new Chaise[this.actual+1];
/// Let's suppose here you fill your array with elements
Chaise firstChair = chair[0]; // Here I select the first chair
if(firstChair != null)
Thread t1 = new Thread(new ThreadStart(firstChair.fabricationbois));
,因为在编译时不知道int mat[m][n];
和m
的值。
如果你想要一个好的可靠矩阵类,那么考虑在Boost中使用BLAS库。 n
可以工作,但它是一个锯齿状的矩阵,内存模型相当差。
答案 1 :(得分:2)
问题在于,当您声明$diff = Compare-Object -ReferenceObject $first -DifferenceObject $second -Property Name, Length, LastWriteTime, VersionInfo -PassThru |
Select Name, Length, LastWriteTime, sideindicator,@{n = "path"; e ={ $_.fullname }}, @{n = "VersionInfo"; e = { $_.VersionInfo.Productversion }
时,成员变量mat
和m
实际上并不存在。在创建n
类的实例之前,它们不存在。但是,由于C ++中的数组在编译时必须具有固定的大小,因此不会有太大的好处。
如果您想在运行时设置matrix
的大小,那么这里的简单解决方案是使用std::vector
个std::vector
个对象。
例如。
mat