编译错误-非静态数据成员c++ student的无效使用

compiler errors - invalid use of non-static data member c++ student

本文关键字:student 无效 c++ 数据成员 错误 静态 编译      更新时间:2023-10-16

我是一个刚刚开始编程的新手,我想知道为什么我会得到一个错误消息,上面写着:无效使用非静态数据成员'Lavirint::n'?

class Lavirint{
private:
    int n, m;
    bool mapa[n + 2][m + 2]; //is this valid?
...
}

编辑-我在同一行中添加了一些其他变量,但它们不会导致更多的错误。

No。这是无效的。不能在没有特定对象的地方使用成员变量,也不能在类中使用任何编译时未知的值来确定C数组的大小。

您引用的实际错误消息指的是第一个(并且更难理解)问题。成员变量只有在特定对象的上下文中才有值,但是类的结构是所有对象共有的,并且是在构造任何对象之前定义的。

第二个问题更为根本,但是第一个问题显然阻止了编译器注意第二个问题。