将一个 QByteArray 附加到另一个 QByteArray
Appending one QByteArray to another QByteArray
我编写了以下函数,它应该允许我将一些输入 QByteArray 数据附加到我 class:
中的私有 QByteArray
void addQByteArray(QByteArray* array)
{
p_commandArray.append(array);
}
我的理解是 append 函数也应该接受 QByteArray 作为参数,但是我在尝试编译时遇到了这个错误:
error: invalid conversion from ‘QByteArray*’ to ‘char’ [-fpermissive]
p_commandArray.append(array);
^
我做错了什么?
QByteArray::append
接受const QByteArray&
,但你给它一个指针。给它一个对象:
void addQByteArray(QByteArray* array) {
p_commandArray.append(*array);
// ^ dereference
}
是的 QByteArray::append
有一个重载,你可以传递一个 QByteArray
(更精确的是 const QByteArray&
),但是你试图传递的是一个指向 QByteArray
的指针.
或者
void addQByteArray(QByteArray& array)
{
p_commandArray.append(array);
}
或
void addQByteArray(QByteArray* array)
{
p_commandArray.append(*array);
}
首选第一个(传递引用),因为只有当 nullptr
是有效参数时使用指针才有意义,但是当您传递 nullptr
时,您不应取消引用它。
您收到的错误消息是由于 append
的另一个重载导致的,该重载采用 char
作为参数。
我编写了以下函数,它应该允许我将一些输入 QByteArray 数据附加到我 class:
中的私有 QByteArrayvoid addQByteArray(QByteArray* array)
{
p_commandArray.append(array);
}
我的理解是 append 函数也应该接受 QByteArray 作为参数,但是我在尝试编译时遇到了这个错误:
error: invalid conversion from ‘QByteArray*’ to ‘char’ [-fpermissive] p_commandArray.append(array); ^
我做错了什么?
QByteArray::append
接受const QByteArray&
,但你给它一个指针。给它一个对象:
void addQByteArray(QByteArray* array) {
p_commandArray.append(*array);
// ^ dereference
}
是的 QByteArray::append
有一个重载,你可以传递一个 QByteArray
(更精确的是 const QByteArray&
),但是你试图传递的是一个指向 QByteArray
的指针.
或者
void addQByteArray(QByteArray& array)
{
p_commandArray.append(array);
}
或
void addQByteArray(QByteArray* array)
{
p_commandArray.append(*array);
}
首选第一个(传递引用),因为只有当 nullptr
是有效参数时使用指针才有意义,但是当您传递 nullptr
时,您不应取消引用它。
您收到的错误消息是由于 append
的另一个重载导致的,该重载采用 char
作为参数。