【发布时间】:2013-11-12 17:31:15
【问题描述】:
我有一个QMap,键为QString,值为myClass。我查看了 Qt 文档并决定将 value 定义为指向 myClass 对象的指针。但是,我对如何remove 键和(由 new 运算符分配的指针对象)值的问题感到困惑?如果我使用 remove() 方法,在动态分配对象的内存释放方面是否安全?
这是一个不错的选择吗?
myClass *type = types.take("foo");
delete type;
【问题讨论】:
-
不,这不会删除您的 myClass 实例并且会导致内存泄漏
-
您应该使用 Qt 智能指针之一,它将为您调用
delete。每次需要时,即使发生异常。
标签: c++ qt pointers memory-management dynamic-allocation