C++ Don';我不知道为什么会收到“错误:转发声明<;类别>`
我有以下代码:C++ Don';我不知道为什么会收到“错误:转发声明<;类别>`,c++,C++,我有以下代码: 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];
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>
我有其他相同的项目,它当时的工作,但我不知道什么是失败的
我非常感激任何帮助
提前感谢。在定义类之前,您正在访问
AP惯性传感器后端
的成员\u gyro
若要修复此错误,请将
get_gyro
的实现移动到cpp文件。您会遇到此错误,因为您在使用AP\u惯性传感器后端
之前未包含其头文件。您确实包含了向前引用,但唯一允许您执行的操作是声明指向该类的指针。为什么在末尾有include,如果您只是要包含标头,为什么还要向前声明?
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'