在为 Arduino 编写自定义类时收到错误"不命名类型"
Getting the error 'does not name type' while programming a custom class for an Arduino
在为 Arduino 编写新库后,编译器无法识别这个新类并返回错误,
二进制计数器:15:错误:"二进制"未命名类型
以下是产生错误的文件。该类在Binary.h
中定义,在Binary.cpp
中实现,并在BinaryCounter.ino
中使用
二进制.h
#ifndef Binary_h
#define Binary_h
#include "Arduino.h"
class Binary {
public:
Binary (int pins[], int numPins);
void display(int number);
void clear();
private:
boolean *_values;
int *_pins;
int _numPins;
void _update();
void _setValues (int num);
};
#endif
二进制.cpp
#include "Binary.h"
Binary::Binary(int pins[], int numPins) {
_values = new boolean[numPins];
_pins = pins;
_numPins = numPins;
for (int i = 0; i < _numPins; i ++) {
pinMode(_pins[i], OUTPUT);
_values[i] = false;
}
_update();
}
void Binary::_update() {
for (int i = 0; i < _numPins; i ++) {
if (_values[i]) {
digitalWrite(_pins[i], HIGH);
} else {
digitalWrite(_pins[i], LOW);
}
}
}
void Binary::_setValues (int num) {
for (int i = 0; i < _numPins; i ++, num/=2) {
_values[i] = ((num%2)==1);
}
}
void Binary::display (int number) {
_setValues(number);
_update();
}
void Binary::clear() {
display(0);
}
和 BinaryCounter.ino
#include <Binary.h>
int pins[] = {2,3,4,5,6};
int numPins = 5;
Binary dis(pins, numPins);
void setup() {
}
void loop() {
int loopEnd = 1<<numPins;
for (int i = 0; i < loopEnd; i ++) {
dis.display(i);
delay(200);
}
}
将
<Binary.h>
更改为文件中"Binary.h"
的引号二进制计数器。
.cpp 和 .h 是否在 libraries/BinaryCounter/目录中?您是否创建了关键字.txt文件?
相关文章:
- 我的模板类方法返回错误类型?
- 错误:类型"double()"和"double()"的操作数无效到二进制&quo
- 类型为 "int*" 的参数与 C++ 中错误类型"int**"参数不兼容
- glDrawElements GL 错误类型 = 0x824c,严重性 = 0x9146,消息 = GL_INVALID
- Eclipse/CDT_C++给出"语义错误_"类型XXX无法解决"。项目运行
- turbo 为什么我的C++代码中出现错误类型名称预期"错误?
- "auto"推断出 hashtable_policy.h 中的错误类型
- 设计自己的结果/两者之一:是否应该始终指定成功类型和错误类型
- 如何修复"ctypes"。参数错误:参数 2:<键入"异常.类型错误">:RaspberryPi 中的错误类型"错误
- 在 vscode 上编译错误.类型说明符是 C++11 扩展
- 不允许使用错误类型
- 当读取错误类型时,CIN覆盖我的初始化值
- C++:"错误:类型'const char*'和'const char [28]'的操作数无效到二进制'ope
- 我的代码错误类型警告 1 警告 C4018 和更多错误
- 在shared_from_this()中的错误类型(在继承类中)(是否有dyn.type-ware shared Poi
- 为什么缩小转换范围不能防止错误类型的map.insert()失败
- 程序总是返回二进制'>>':找不到运算符,它采用错误类型的左操作数
- 错误:类型为 '.&' 来自类型的临时 '..*康斯特'
- 涉及将要馈送的向量转换为execvp的错误类型
- C++中是否存在错误类型