c++ - 复制/加载后是否删除

标签 c++ qt qimage

这可能是个棘手的问题,但我不确定;

我是否必须在 : 之后调用 delete

  • QImage::copy()
  • QImage::load(QString)
  • QPixmap::fromImage(QImage)

我的意思是删除,当我不再需要它时删除它。

最佳答案

QImage 对象的创建和销毁方式并不特殊。在堆栈上或使用 new/delete 或其他任何东西,规则与所有 C++ 对象相同。

QImage 是implicitly shared ,所以复制它很便宜(就像共享指针),但它执行写时复制以保留值语义。

简而言之,您可能永远不必新建/删除 QImage,只需将其作为值传递即可,无需担心。

不必在调用复制/加载方法后执行任何特殊删除操作,尽管您可能希望分配 my_image=QImage() 以释放缓存数据或一些东西。

关于c++ - 复制/加载后是否删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972272/

相关文章:

c++ - 使用现有项目进行 CppUnit 测试

c++ - 从插槽访问 qtableview qsqltablemodel

c++ - 快速图像处理

python - 如何将原始 .NEF 文件加载到 QImage 中而不将其保存在 Python 中

c++ - OpenCL 找不到平台?

c++ - 打开目录错误?

C++ 字符串在开头和结尾添加

c++ - 使用带有 std::optional 参数的 std::function 重载歧义

c++ - 在 Qt5 中为高 DPI 缩放图像的最佳方法是什么?

c++ - 将 IplImage IPL_DEPTH_32S 转换为 QImage Format_RGB32 的最快方法