繁体   English   中英

将一个 QByteArray 附加到另一个 QByteArray

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM