我有这段代码:
class AP_InertialSensor_Backend;
class AP_InertialSensor
{
public:
const Vector3f &get_gyro(uint8_t i) const { return drivers[primary_instance]->_gyro[i]; }
private:
AP_InertialSensor_Backend *drivers[INS_MAX_INSTANCES];
void detect_instance(uint8_t instance);
/// primary IMU instance
uint8_t primary_instance=0;
};
#include <AP_InertialSensor_Backend.h>
无论如何,我收到这些错误:
In member function 'const Vector3f& AP_InertialSensor::get_gyro(uint8_t) const':
error: invalid use of incomplete type 'class AP_InertialSensor_Backend'
error: forward declaration of 'class AP_InertialSensor_Backend'
我有其他相同的项目,然后它工作,但我不知道什么是失败。
我会帮助你。
提前致谢。
答案 0 :(得分:3)
在定义课程之前,您正在访问_gyro
的成员AP_InertialSensor_Backend
。
要解决此问题,请将get_gyro
的实现移至cpp文件。
答案 1 :(得分:0)
您收到此错误是因为在使用AP_InertialSensor_Backend
之前未添加{{1}}的头文件。你确实包含了一个前向引用,但唯一允许你做的是声明一个指向该类的指针。