Class Arduino:用户定义的类型;不为类型命名";

Class Arduino:用户定义的类型;不为类型命名";,class,inheritance,arduino,Class,Inheritance,Arduino,我在Arduino的写作课上遇到了一些麻烦。这是一个名为“Jerry”的类。它包含三个用户定义类的实例,分别称为Mouth、Move和Injection。Arduino IDE抱怨“嘴”没有命名类型,“移动”没有命名类型。我如何让Arduino识别嘴和移动作为有效类型 \ifndef JERRY\u H #定义JERRY_H 包括“Button.h” 包括“Injection.h” 杰里班 { 受保护的: int BGL; 双蛋白浓度; 公众: 杰瑞(int,int),; 口mth; 移动mv;

我在Arduino的写作课上遇到了一些麻烦。这是一个名为“Jerry”的类。它包含三个用户定义类的实例,分别称为Mouth、Move和Injection。Arduino IDE抱怨“嘴”没有命名类型,“移动”没有命名类型。我如何让Arduino识别嘴和移动作为有效类型

\ifndef JERRY\u H
#定义JERRY_H
包括“Button.h”
包括“Injection.h”
杰里班
{
受保护的:
int BGL;
双蛋白浓度;
公众:
杰瑞(int,int),;
口mth;
移动mv;
注射;
易失性长上一次中断时间;
};
#endif//JERRY_H
(#删除符号,因为它会在StackOverflow中破坏格式)

Mouth、Move和Injection类声明如下:

\ifndef按钮
#定义按钮
包括“Jerry.h”
类按钮
{
公众:
无效设置PIN(int);
int getPin();
博尔支票(杰里);
虚空运行();
受保护的:
int引脚;
};
类口:公共按钮
{
公众:
int detectFood();
无效运行();
};
类移动:公共按钮
{
公众:
bool-checklaugh();
void runlaugh();
bool-checkSleep();
};
#endif//按钮
#ifndef注射液
#定义注入
类注入
{
公众:
void setPin(int,int,int,int);
无效检查注入();
void checkInjectionSite();
受保护的:
int-pin1;
int-pin2;
int-pin3;
int-pin4;
};
#endif//INJECTION\u H

任何帮助都将不胜感激

看起来您需要将其设置为与草图相同的文件夹中的
库/Jerry/Jerry.h
库/Button/Button.h

退房:

首先,在 您的sketchbook目录。复制或移动Morse.h和Morse.cpp 将文件保存到该目录中。现在启动Arduino环境。如果你 打开Sketch>Import Library菜单,您应该会看到里面的Morse。 该库将使用使用它的草图进行编译。如果图书馆 似乎没有生成,请确保文件确实以.cpp结尾,并且 .h(例如,没有额外的.pde或.txt扩展名)。让我们看看怎么做 我们可以使用新库复制旧的SOS草图:

#包括
莫尔斯-莫尔斯(13);
无效设置()
{
}
void循环()
{
morse.dot();morse.dot();morse.dot();
morse.dash();morse.dash();morse.dash();
morse.dot();morse.dot();morse.dot();
延迟(3000);
}

有两个循环依赖项

  • Jerry使用嘴的类定义,嘴继承按钮,按钮 希望已定义类
  • Jerry使用Move的类定义,Move继承Button,Button 希望已定义类
  • 要对这些进行分类,请使用前向声明。 :-)