gpt4 book ai didi

c++ - 如何从 C++ 类中的构造函数为 Arduino 分配字符串字段?

转载 作者:行者123 更新时间:2023-11-30 05:48:22 26 4
gpt4 key购买 nike

我正在尝试学习如何使用一个类来保存多个值并从函数返回一个实例。另一种选择是使用全局变量,这可能更简单,但我想学习 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/

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