В принципе, нестатический член theta
, который инициализируется другим членом класса, но хорошо инициализирован. Затем valley_max
инициализирован theta
, как вы можете видеть. Сейчас все работает нормально. Затем я хочу инициализировать массив, чья граница равна valley_max
. Во-первых, я получил ошибку:C++ инициализировать переменную-член класса зависит от другой переменной-члена
недопустимое использование нестатической элемента данных
Затем я добавляю static const int valley_max
, как вы можете видеть. Но я получил ошибку, как:
массив связан не целая константа, прежде «]» маркер
Я просто интересно, если я могу инициализировать массив, Bound инициализируется переменная-член, который инициализируется другим переменные-члены.
Спасибо за помощь.
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];
}