复制/加载后是否删除

时间:2012-01-23 13:20:10

标签: c++ qt qimage

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

我必须在以下后调用删除:

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

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

1 个答案:

答案 0 :(得分:3)

QImage对象在创建和销毁它们方面并不特殊。在堆栈上或使用new / delete等等,规则与所有C ++对象的规则相同。

QImage是implicitly shared,因此复制它很便宜(比如共享指针),但它会执行写时复制以保留值语义。

简短的故事,你可能不需要新建/删除QImage,只需将其传递为值并放弃担心。

在调用复制/加载方法后, 没有进行任何特殊删除,尽管您可能希望指定my_image=QImage()来释放缓存数据等。