Arduino oop error
Arduino oop error
我正在学习如何用c++编写一个艰巨的程序,但遇到了一个我似乎无法理解的错误。
这是我的代码
class ledControler
{
public:
void ledOn();
void ledOff();
void ledStrobe();
void ledFade();
ledControler(int);
private:
int pinNumber = 0;
};
ledControler::ledControler(int pin)
{
pinNumber = pin;
pinMode(pinNumber, OUTPUT);
ledOn();{
digitalWrite(pinNumber, HIGH);
}
ledOff ();{
digitalWrite(pinNumber, LOW);
}
ledStrobe(int time);{
digitalWrite(pinNumber, HIGH);
delay(time);
digitalWrite(pinNumber, LOW);
delay(time);
}
}
以下是错误:
Object_oriented_LED.ino: In constructor 'ledControler::ledControler(int)':
Object_oriented_LED.ino:24:13: error: expected primary-expression before 'int'
Object_oriented_LED.ino:26:11: error: 'time' was not declared in this scope
Error compiling.
您的方法显然是在构造函数内创建的,这是不正确的。每个方法都应该是自己的方法,例如:
void ledControler::ledOn() {
digitalWrite(pinNumber, HIGH);
}
考虑构造函数中的代码片段:
ledOn();{
digitalWrite(pinNumber, HIGH);
}
这实际上被视为对函数ledOn
的调用,后面是一个包含digitalWrite
调用的块,这两个调用都是完全有效的(当然,除了没有定义ledOn
函数这一事实之外,如果你能克服编译错误,你肯定会在链接时发现这一点)。
阻止这种情况发生的特殊编译错误是您尝试定义的:
ledStrobe(int time);{ ...
如上所述,这实际上更像是对ledStrobe
的调用,不幸的是,这不是一个有效的调用,因为您不应该在调用中提供数据类型(通常是ledStrobe(time);
)。
这就是第一个错误的来源。第二个原因是,由于您实际上并没有定义接收time
参数的函数,因此使用它的代码抱怨它不存在。
正确定义方法应该可以解决这两个问题,这可以通过以下方法来完成:
class ledControler {
public:
void ledOn();
void ledOff();
void ledStrobe();
void ledFade();
ledControler(int);
private:
int pinNumber = 0;
};
ledControler::ledControler(int pin) {
pinNumber = pin;
pinMode(pinNumber, OUTPUT);
}
void ledControler::ledOn() {
digitalWrite(pinNumber, HIGH);
}
void ledControler::ledOff () {
digitalWrite(pinNumber, LOW);
}
void ledControler::ledStrobe(int time) {
digitalWrite(pinNumber, HIGH);
delay(time);
digitalWrite(pinNumber, LOW);
delay(time);
}
相关文章:
- "error: no matching function for call to"构造函数错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- C++错误:"error: int aaa::bbb is protected within this context"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- c++中的oop(密码生成)
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- C++ "error: invalid use of void expression"
- OOP 中的单成员指针
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 从不同目录执行时"symbol lookup error:",否则从构建目录执行时按预期工作
- 对象声明中的模板"error: expected expression"
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- OpenCV 3.4.1 error readNetFromTensorflow 无法在 cv::d nn::ReadProtoFromBinaryFile 中打开 .pb
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- C++ OOP LNK2001 ERROR
- Arduino oop error