我正在努力将我的飞利浦色调灯泡连接到arduino,并在网上找到了一些资源。 其中一个资源有一个不断抛出错误的文件,当我查看它时,我从未见过以前使用过的语法。 任何人都可以帮助我吗?
#ifndef SERIALHUE_H
#define SERIALHUE_H
#include <Arduino.h>
#include <Stream.h>
#include <ArduinoHue.h>
class SerialHue: public ArduinoHue{
public:
SerialHue(char* ipAddress, Stream* serial);
boolean connect(char* deviceId, char* username);
protected:
char* _ipAddress;
char* _deviceId;
char* _username;
boolean makePost(char* request, char* data);
boolean waitForResponse();
Stream* _serial;
};
#endif
错误在这一行:
* 类SerialHue:public ArduinoHue { *
给出错误:
SerialHue.h:10:错误:'{'标记
之前的预期类名这种格式是什么,这里有什么问题?
答案 0 :(得分:1)
检查编译器设置......它可能尝试用c编译器编译c ++代码
关于格式:
class X : public Y {
}
是在C ++中扩展类的语法
plus:检查ArduinoHue.h是否真正定义了ArduinoHue类
...如果你无法搞清楚:看看预编译的源文件(g ++ -E)
答案 1 :(得分:0)
首先,请确保您没有递归地包含文件,例如#including包含#included其他文件的文件#included。
此外,转发声明而不是#include ArduinoHue.h可以解决您的问题。如:
class ArduinoHue;
我发现了类似的问题,他们可以帮助你:
expected class-name before '{' token