2012-01-23 46 views
0

这可能是个狡猾的问题,但我不确定;复制/加载后删除或不加载

我必须打电话给删除后:

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

通过删除我的意思是,删除它时,我并不需要它了。

回答

3

QImage对象的创建和销毁方式并不特别。在堆栈中,或者使用new/delete或其他方法,规则与所有C++对象相同。

QImage是implicitly shared,所以复制它很便宜(像一个共享指针),但它执行写时复制以保留值语义。短小的故事,你可能永远都不需要新建/删除一个QImage,只需将它作为一个值传递并不用担心。

你不调用拷贝/ load方法后做任何特别的删除,虽然你可能要分配my_image=QImage()释放缓存数据什么的。