我是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_consumer
由main()
函数设置,以便可以使用此变量为变量def
定义结构数组。但我收到此错误:无效使用非静态数据成员“ no_of_consumer”。
我在这里想念一些概念吗?
最佳答案
问题出在这里:
def variable[no_of_consumer - 1];
^^^^^^^^^^^^^^^^^^
在C ++中,数组大小必须是常量表达式。如果要具有动态大小的数组,请改用
std::vector
。注意,您还需要自定义逻辑来调整向量的大小;如评论中所述,您不能使其自动取决于变量的值。
关于c++ - 错误:在CPP中无效使用了非静态数据成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48504288/