我是C ++的新手,我正在尝试执行以下操作:

class abc {
    public:
    int no_of_consumer;
    struct def {
        int p = 0;
        int c = 0;
    };
    def variable[no_of_consumer - 1];
};

int main() {
    abc obj1;
    obj1.no_of_consumer = 1;
};


我希望变量no_of_consumermain()函数设置,以便可以使用此变量为变量def定义结构数组。但我收到此错误:


  无效使用非静态数据成员“ no_of_consumer”。


我在这里想念一些概念吗?

最佳答案

问题出在这里:

def variable[no_of_consumer - 1];
             ^^^^^^^^^^^^^^^^^^


在C ++中,数组大小必须是常量表达式。如果要具有动态大小的数组,请改用std::vector

注意,您还需要自定义逻辑来调整向量的大小;如评论中所述,您不能使其自动取决于变量的值。

关于c++ - 错误:在CPP中无效使用了非静态数据成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48504288/

10-11 22:44
查看更多