gpt4 book ai didi

c++ - Arduino C++ - 尝试实例化具有非类型模板参数的类时出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:03:22 27 4
gpt4 key购买 nike

这是我尝试在其中实例化“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

我收到以下错误消息:错误:在“<”标记

之前需要构造函数、析构函数或类型转换

为什么?相同的代码(减去 arduino 特定的东西)在 Visual Studio 中工作。我以为 WinAVR 支持 C++?

最佳答案

我尝试并编译了您的代码 (GCC),只做了两处小修改。

  1. 更改 #include <Melodie.h>#include "Melodie.h"
  2. 注释掉下面的内容

    //#include <Arduino.h>

    //#include "pitches.h"

因为它们没有被使用。

关于c++ - Arduino C++ - 尝试实例化具有非类型模板参数的类时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19228396/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com