C++ 在单独的类中使用库对象

C++ 在单独的类中使用库对象,c++,class,arduino,fastled,C++,Class,Arduino,Fastled,我正在尝试分离我的arduino FastLED项目的功能,我想把它们自己放到一个类中。现在这些“模式”,我称之为“模式”,使用了FastLED库的一些功能 我当前遇到的错误是,我使用了FastLED库的一个对象函数CRGB::white,但我得到的错误是white不是“CRGB”的成员。这让我很困惑,因为我可以在主arduino文件中使用这种语法,而且我还可以在类中使用库函数,语法与主文件中相同 模式类: #include <FastLED.h> class Mode { pub

我正在尝试分离我的arduino FastLED项目的功能,我想把它们自己放到一个类中。现在这些“模式”,我称之为“模式”,使用了FastLED库的一些功能

我当前遇到的错误是,我使用了FastLED库的一个对象函数
CRGB::white
,但我得到的错误是
white不是“CRGB”的成员。这让我很困惑,因为我可以在主arduino文件中使用这种语法,而且我还可以在类中使用库函数,语法与主文件中相同

模式类:

#include <FastLED.h>

class Mode {
public:
    Mode (CRGB *l)
    {
        leds = l;

        leds[random16(60)] += CRGB::white //Here the compiler gives an error about white not being a member of CRGB
    }
protected:
    CRGB *leds;
};

void setup()
{
    leds[random16(60)] += CRGB::white //While over here it won't give an error.
}
#包括
类模式{
公众:
模式(CRGB*l)
{
发光二极管=l;
leds[random16(60)]+=CRGB::white//这里编译器给出了一个关于white不是CRGB成员的错误
}
受保护的:
CRGB*发光二极管;
};
无效设置()
{
LED[random16(60)]+=CRGB::white//而在这里它不会给出错误。
}

我的猜测是使用不同的语法,但我似乎在网上的任何地方都找不到它…

您是否包含了“FastLED/pixeltypes.h”,或者在您的库中的“.cpp”文件中声明了“CRGB::white”的任何地方?@PatrickTrentin我以前没有尝试过,但它没有解决问题……然后,请提供一个最小的、可复制的示例(请参阅:),这是一个完整的项目。如果太大而无法发布,并且文件太多,请将其上载到github上,然后用链接编辑您的问题。@PatrickTrentin我想我错过了,抱歉,现在已更改。如果仔细查看“pixeltypes.h”中的定义,您会发现所有枚举类型都有大写的首字母,因此它应该是“CRGB::White”。我在web arduino编辑器上测试了您的代码,经过几次修复后,我能够编译它(因此它没有通过mcve测试;-),重现错误并通过将名称更改为正确的值来修复它。对于这些记录,编译器还抱怨“setup(){}”中的“CFGB::white”。