作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试学习如何使用一个类来保存多个值并从函数返回一个实例。另一种选择是使用全局变量,这可能更简单,但我想学习 C++ 中的类。
唯一给我带来麻烦的是从构造函数参数分配给字符串字段。我已经尝试了这段代码的多种变体,但都无法编译。
这是我目前得到的错误:
在构造函数“RelayInfo::RelayInfo(int, char*)”中:17: 错误:将 'char*' 赋值给 'char [20]' 时类型不兼容
我已经有很长时间没有在 C 中处理指针等了。
//The RelayInfo class only has public fields and a constructor.
//Its only purpose is to hold these values.
class RelayInfo
{
public:
RelayInfo(int pin, char message[20]);
int Pin;
char Message[20];
};
RelayInfo::RelayInfo( int pin, char message[20] )
{
Pin = pin;
Message = message*;
}
void setup() {
pinMode(13, OUTPUT);
digitalWrite( 13, LOW );
}
void loop() {
//Construct an instance of the class:
RelayInfo info( 13, "Hello, World!" );
//Use the fields from the class.
if( info.Message == "Hello, World!" )
{
digitalWrite( info.Pin, HIGH );
}
}
最佳答案
定义需要是:
RelayInfo( int pin, char* message );
甚至更好:
RelayInfo( int pin, const char* message );
编辑:
此外,您可能应该使用:
strncpy()
用于复制字符指针。
关于c++ - 如何从 C++ 类中的构造函数为 Arduino 分配字符串字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28219715/
我是一名优秀的程序员,十分优秀!