【发布时间】:2015-12-24 16:26:14
【问题描述】:
我对编程很陌生,因为我仍在学习如何高效地编码,所以我的问题可能看起来有点奇怪。
当我学习如何使用 Qt 编码时,我知道 Qt 有一个内存管理方法,当它本身被删除时,父级会删除它的所有子级,然后还有 QSharedPointer 和许多其他智能指针的东西(或者你可以提到boost::shared_ptr)。
我了解这两种方法究竟是如何工作的,但我的问题是,当涉及到 Qt 中整个系统结构的设计时,我是否应该让我的大部分课程成为 QObject 的子类并将所有权移交给 QT进行内存管理,或者只是使用boost::shared_ptr 或QSharedPointer 来避免潜在的内存泄漏?
如果我们同时采用这两种技术需要考虑很多问题,因为它可能会导致双重删除问题。
那么哪种技术性能更好,或者在设计上哪种更好?
【问题讨论】:
标签: c++ qt boost smart-pointers qsharedpointer