首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >c++:什么时候使用指针?

c++:什么时候使用指针?
EN

Stack Overflow用户
提问于 2009-03-18 12:49:06
回答 14查看 19.6K关注 0票数 16

在阅读了一些教程后,我得出结论,一个人应该总是使用对象的指针。但在阅读一些在堆栈上创建QPaint对象的QT教程(http://zetcode.com/gui/qt4/painting/)时,我也看到了一些例外。所以现在我很困惑。什么时候应该使用指针?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2009-03-18 13:07:56

如果你不知道什么时候应该使用指针,那就不要使用它们。

当你需要使用它们时,它会变得很明显,每种情况都是不同的。要简明扼要地总结出什么时候应该使用它们并不容易。不要养成“总是对对象使用指针”的习惯,这肯定是个坏建议。

票数 42
EN

Stack Overflow用户

发布于 2009-03-18 12:56:07

使用指针的主要原因:

  1. 控件对象生存期;
  2. 不能使用引用(例如,您希望以矢量形式存储不可复制的内容);
  3. 您应该将指针传递给某个第三方函数;
  4. 可能出于某些优化原因,但我不确定。

<代码>G29

票数 21
EN

Stack Overflow用户

发布于 2009-03-18 13:43:42

我不清楚你的问题是ptr- to -obj还是ptr-to-obj还是ptr-to-obj还是引用到obj。也有一些用途不属于这两个类别。

关于vs堆栈,上面似乎已经介绍过了。有几个原因,最明显的是对象的生命周期。

关于vs引用,总是努力使用引用,但有一些事情你只能用ptrs来做,例如(有很多用法):

  • 遍历数组中的元素(例如,遍历标准array[])
  • 当被调用的函数分配某些内容并通过ptr

返回它时

最重要的是,指针(和引用,而不是自动/基于堆栈的静态对象)支持多态性。指向基类的指针实际上可能指向派生类。这是C++中支持的OO行为的基础。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/658133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档