Я кодирую stm32. В принципе, я хочу получить доступ к данным массива bool из другой библиотеки. Это заголовочный файл хранит данные библиотеки в scan.isObstacle
, который является массивом bool. Также я сделал функцию возврата с именем getObstacle()
. Другая библиотека с именем AP_Tmxk_VFH
для доступа к данным от getObstacle()
. Это нормально? Или это способ скопировать этот массив в AP_Tmxk_VFH
. Спасибо за вашу помощь.C++ данные массива доступа в общей библиотеке
AP_Tmxk_LIDARScanner
class AP_Tmxk_LIDARScanner {
private:
struct{
bool isObstacle[180] = {}; //1: unsafe; 0:safe
bool available = false;
}scan;
public:
AP_Tmxk_LIDARScanner();
void init();
void update();
bool getAvailable() const{
return scan.available;
}
bool getObstacle() const{
return scan.isObstacle;
}
};
AP_Tmxk_VFH.h
class AP_Tmxk_VFH {
private:
struct{
bool Certain_Value[180] = {};
}sector;
const AP_Tmxk_LIDARScanner &_lidarscanner;
public:
// Constructor
AP_Tmxk_VFH(const AP_Tmxk_LIDARScanner &_lidarscanner);
void init();
void update();
};
AP_Tmxk_VFH.cpp
AP_Tmxk_VFH::AP_Tmxk_VFH(const AP_Tmxk_LIDARScanner &lidarscanner) :
_lidarscanner(lidarscanner)
{}
void AP_Tmxk_VFH::update()
{
if(_lidarscanner.getAvailable()){
sector.Certain_Value = _lidarscanner.getObstacle()
}
}
Ваш код выглядит noneworking. В функции 'getObstacle()' вы возвращаете значение bool, это не то же самое, что и массив bool. –
Надежда [it] (https://www.tutorialspoint.com/cplusplus/cpp_pointer_to_an_array.htm) может помочь –