0

我正在努力将我的飞利浦色调灯泡连接到 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:公共 ArduinoHue{ *

给出错误:

SerialHue.h:10:错误:“{”标记之前的预期类名

这种格式是什么,这里有什么问题?

4

2 回答 2

1

检查编译器设置...它可能会尝试使用 ac 编译器编译 c++ 代码

关于格式:

class X : public Y {
}

是在 C++ 中扩展类的语法

加:检查 ArduinoHue.h 是否真的定义了 ArduinoHue 类

...如果您无法弄清楚:查看预编译的源文件 (g++ -E)

于 2013-07-17T16:41:24.337 回答
0

首先,确保你没有递归地包含一个文件,比如#include 一个文件,它#includes 你也有#included 的其他文件。

此外,转发声明而不是#include ArduinoHue.h 可以解决您的问题。如:

class ArduinoHue;

我发现了类似的问题,他们可能会对您有所帮助:
'{' 标记之前的预期类名

错误:“{”标记之前的预期类名

于 2013-07-17T16:50:05.277 回答