【发布时间】:2021-01-25 22:21:23
【问题描述】:
我觉得我在这里遗漏了一些明显的东西,需要指出。 我正在尝试创建一个结构的实例,它是包含在当前文件中的库中包含的类的成员,但在我自己定义的类中。如果我在类之外执行此操作,它可以工作,但在类内部,它似乎试图实例化结构,就好像它是它所在的父类的成员一样。
该库用于 BME280 传感器,结构是将芯片设置传递给驱动传感器的主类的构造函数。甚至不知道如何表达这个问题,但希望代码能说明我想说的。
如果我在一个类之外实例化这个结构,它就可以正常工作,
#include <BME280I2C.h>
// BME280 sensor settings
BME280I2C::Settings settings(
BME280::OSR_X16,
BME280::OSR_X16,
BME280::OSR_X16,
BME280::Mode_Forced,
BME280::StandbyTime_1000ms,
BME280::Filter_Off,
BME280::SpiEnable_False,
BME280I2C::I2CAddr_0x76 // I2C address. I2C specific.
);
class UsermodBME280 : public Usermod {
private:
BME280I2C bme(settings);
};
但如果我尝试在类中执行此操作,它似乎会尝试将结构实例化,就好像它是 UsermodBME280 类本身的成员一样。
#include <BME280I2C.h>
class UsermodBME280 : public Usermod {
private:
// BME280 sensor settings
BME280I2C::Settings settings(
BME280::OSR_X16,
BME280::OSR_X16,
BME280::OSR_X16,
BME280::Mode_Forced,
BME280::StandbyTime_1000ms,
BME280::Filter_Off,
BME280::SpiEnable_False,
BME280I2C::I2CAddr_0x76 // I2C address. I2C specific.
);
BME280I2C bme(settings);
};
IntelliSense 说明了我的意思: https://i.stack.imgur.com/14ql5.png
我可以这样做吗?如果是这样,我做错了什么?
【问题讨论】: