[英]Appending one QByteArray to another QByteArray
我编写了以下函数,它应该允许我将一些输入 QByteArray 数据附加到我的类内的私有 QByteArray 中:
void addQByteArray(QByteArray* array)
{
p_commandArray.append(array);
}
我的理解是 append 函数也应该接受 QByteArray 作为参数,但是当我尝试编译时出现此错误:
错误:从“QByteArray*”到“char”的无效转换 [-fpermissive] p_commandArray.append(array); ^
我在这里做错了什么?
是的QByteArray::append
有一个重载,你可以传递一个QByteArray
(更精确的是一个const QByteArray&
),但你试图传递的是一个指向QByteArray
的指针。
任何一个
void addQByteArray(QByteArray& array)
{
p_commandArray.append(array);
}
或者
void addQByteArray(QByteArray* array)
{
p_commandArray.append(*array);
}
首选第一个(传递引用),因为仅当nullptr
是有效参数时使用指针才有意义,但是当您传递nullptr
您不应取消引用它。
您收到的错误消息是由于另一个以char
作为参数的append
重载。
QByteArray::append
接受const QByteArray&
,但你给它一个指针。 给它一个对象:
void addQByteArray(QByteArray* array) {
p_commandArray.append(*array);
// ^ dereference
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.