【发布时间】:2012-02-17 11:29:25
【问题描述】:
错误:将 'const QByteArray' 作为 'QByteArray& QByteArray::append(const QByteArray&)' 的 'this' 参数传递会丢弃限定符 [-fpermissive]
因为在作为函数参数传递时使对象为 const 是一种惯例,所以我已经做到了。 但现在我得到一个错误!, 我不想让函数保持不变,因为我必须将 qbyte 数组中的数据转换为短格式,然后将其附加到另一个数组中。
QByteArray ba((const char*)m_output.data(), sizeof(ushort));
playbackBuffer.append(ba);
我真的需要把这个数组传递给playbackbuffer;
在playbackBuffer.append(ba) 上给我一个错误;
请帮忙
提前致谢
【问题讨论】:
-
您至少必须发布一些代码才能理解错误,您不这么认为吗?
-
约定应该是通过 const 引用传递对象如果它们不打算更改。如果传递的 QByteArray 不应更改,那么您可以将其复制到本地 QByteArray 并处理那个。
-
“因为在作为函数参数传递时将对象设为 const 是一种惯例” - 仅当函数不应该修改它时。如果它确实修改了它,那么声明它
const充其量是误导。 -
抱歉,这将发布代码。