【发布时间】:2010-10-14 01:48:06
【问题描述】:
在阅读了一些教程后,我得出结论,应该始终使用指针来表示对象。但是我在阅读一些 QT 教程 (http://zetcode.com/gui/qt4/painting/) 时也看到了一些例外,其中 QPaint 对象是在堆栈上创建的。所以现在我很困惑。什么时候应该使用指针?
【问题讨论】:
-
QT 教程在堆栈上创建 QPaint 对象,因为 QPaint 对象的使用寿命在编译时是已知的,并且完全由一对匹配的 {} 限定。
-
同样适用于 QPen、QPainter 和 QApplication。
-
关于指针的好消息是,我们现在在 C++ 中有一些安全的指针实现,例如 unique_ptr 或 weak_ptr,当你需要使用指针时,你需要使用它们(有一些罕见的例外低级代码)