有关类名的arduino c ++问题

时间:2013-07-17 16:29:02

标签: c++ class arduino arduino-ide

我正在努力将我的飞利浦色调灯泡连接到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:错误:'{'标记

之前的预期类名

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

2 个答案:

答案 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

error: expected class-name before ‘{’ token