theta
基本上,一个由另一个类成员初始化但初始化良好的非静态成员。然后valley_max
初始化theta
如你所见。现在一切正常。然后我想初始化一个边界为valley_max
. 首先,我得到了错误:
无效使用非静态数据成员
然后我添加static const int valley_max
如你所见。但我得到了如下错误:
数组绑定在 ']' 标记之前不是整数常量
我只是想知道我是否可以初始化其边界由另一个成员变量初始化的成员变量初始化的数组。
谢谢你的帮助。
AP_Tmxk_VFH.cpp
AP_Tmxk_VFH::AP_Tmxk_VFH() :
l(5),
threshold(5),
safe_space(0.7),
detected_range(2.5),
theta(degrees(acos(1-sq(safe_space)/(2*sq(detected_range))))),
valley_max(round_float(180.0/theta)),
valley_count(0),
{
}
AP_Tmxk_VFH.h
class AP_Tmxk_VFH {
privte:
int l;
int threshold;
int safe_space;
int theta;
int detected_range;
static const int valley_max ;
struct{
bool inside_valley = false;
uint16_t up_bound = 0;
uint16_t down_bound = 0;
}valley[valley_max];
}