gpt4 book ai didi

c++ - ISO C++ 禁止声明没有类型的 'getRawAccValues' [-fpermissive]

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:03:52 24 4
gpt4 key购买 nike

我是 C++ 的新手,我不知道如何正确地做事可能是个问题,但我希望我的 class _MPU6050 有两个返回 struct< 的函数。我尝试了几种声明 struct 的形式无济于事,我总是收到此错误:

MPU6050.cpp:43: error: no 'int _MPU6050::SensorDataRaw::getRawGyroValues()' member function declared in class '_MPU6050::SensorDataRaw'
ISO C++ forbids declaration of 'getRawAccValues' with no type [-fpermissive]

据我了解,编译器无法识别函数 _MPU6050::SensorDataRaw::getRawGyroValues() 并尝试在开头添加返回类型 int

这是我的代码:

MPU6050.cpp:

#include "MPU6050.h"

...

_MPU6050::SensorDataRaw MPU6050::getRawAccValues(){
Wire2.beginTransmission(ADD);
Wire2.write(GET_ALL_ACC);
Wire2.endTransmission();
Wire2.requestFrom(ADD, 6);
sensorData.ax = Wire2.read()<<8 | Wire2.read();
sensorData.ay = Wire2.read()<<8 | Wire2.read();
sensorData.az = Wire2.read()<<8 | Wire2.read();
return sensorData;
}

_MPU6050::SensorDataRaw MPU6050::getRawGyroValues(){
Wire2.beginTransmission(ADD);
Wire2.write(0x43);
Wire2.endTransmission();
Wire2.requestFrom(ADD, 6);
sensorData.gx = Wire2.read()<<8 | Wire2.read();
sensorData.gy = Wire2.read()<<8 | Wire2.read();
sensorData.gz = Wire2.read()<<8 | Wire2.read();
return sensorData;
}

MPU6050.h:

class _MPU6050
{
public:
struct SensorDataRaw{
int16_t ax, ay, az, gx, gy, gz;
};
public:
_MPU6050(void);
void setXGyroOffset(int16_t offset);
void setYGyroOffset(int16_t offset);
void setZGyroOffset(int16_t offset);
void setXAccOffset(int16_t offset);
void setYAccOffset(int16_t offset);
void setZAccOffset(int16_t offset);
SensorDataRaw getRawAccValues();
SensorDataRaw getRawGyroValues();
private:
SensorDataRaw sensorData;
};

请让我知道我做错了什么。谢谢!

最佳答案

_ 在您的例子中是类名的一部分。不允许以 _ 后跟大写字母开头任何变量/类型/函数名称,因此我强烈建议删除此标记。

在您的特定情况下,您在引用类名时没有使用 _,因此编译器无法找到该类。

_MPU6050::SensorDataRaw MPU6050::getRawAccValues(){

第二个MPU6050没有_,因此是一个不同的名字。

关于c++ - ISO C++ 禁止声明没有类型的 'getRawAccValues' [-fpermissive],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54390509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com