免责声明:我是 Qt 的新手。
假设我们有一个从函数返回的字节数组innerFunc,稍后在另一个函数中使用outerFunc。
QByteArray innerFunc(){
QProcess ls;
ls.start("ls", QStringList() << "-1");
return ls.readAll();
}
void outerFunc(){
QByteArray gotcha = innerFunc();
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
在 vanilla c++ 中,我希望readAll函数返回一个稍后需要删除的指针。在 Qt 中,这个函数返回该类的一个实例QByteArray,所以我想它不应该在innerFunc的范围之外访问。
如果是这样,我应该如何正确地将数据传输到外部函数?应该复制QByteArray *tmp = new QByteArray还是没有必要?
你的代码看起来不错。 QByteArray类似于std::vector<uint8_t>orstd::string而不类似于指针。它管理自己的内存。可以从函数返回它或按值将其传递给函数。编译器将使用 QByteArray 类定义的构造函数/运算符,根据需要将数据从一个对象复制和/或移动到另一个对象。
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |