有人可以帮我解释一下吗:
我在头文件中声明一个常量:
const int INCRSIZE;
然后在MIL中初始化常量:
: INCRSIZE(10)
然后稍后在代码中的函数中(其在gtkmm-GUI中使用的回调函数
bool MyWindow::on_drawing_expose_event(GdkEventExpose* event)
我使用此常量在堆栈上分配一个数组
double arrPxStep[INCRSIZE];
编译时出现以下错误:
-expected constant expression
- cannot allocate an array if constant size 0
- arrPxStep unknown size
我知道常量已初始化-数组为什么不能使用已在MIL中初始化的常量memeber-variable?
最佳答案
根据您发布的代码的外观,INCRSIZE是类的非静态成员。即使该值在构造函数中始终设置为相同,也不能使用它来初始化数组。这只是规则。
使INCRSIZE成为在类中定义的静态const成员,它将起作用。