这是我尝试实例化“Melodie”对象的文件:
#include <Melodie.h>
Melodie<5> m(8);
void setup()
{
}
void loop()
{
}
这是“Melodie.h”文件:
#ifndef Melodie_H
#define Melodie_H
#include <Arduino.h>
#include "pitches.h"
template <int NB_NOTES>
class Melodie
{
public:
Melodie(int pin)
{
// Some unimportant stuff
}
void addNote(int pitch, int duration)
{
// Some unimportant stuff
}
void play()
{
// Some unimportant stuff
}
private:
char notes_[NB_NOTES];
char durations_[NB_NOTES];
int notePointer_;
int pin_;
};
#endif
我收到以下错误消息: 错误:'&lt;'之前的预期构造函数,析构函数或类型转换令牌
为什么呢?相同的代码工作(减去arduino特定的东西)在Visual Studio中工作。我以为WinAVR支持C ++?
答案 0 :(得分:-1)
我尝试编译你的代码(GCC),没有任何问题,只做了两次小修改。
#include <Melodie.h>
更改为#include "Melodie.h"
注释掉以下内容
//#include <Arduino.h>
//#include "pitches.h"
因为它们没有被使用。