可能重复:
What are the barriers to understanding pointers and what can be done to overcome them?
What is a smart pointer and when should I use one?
我正在学习C ++,我在学习指针时遇到了很多困难,所以我在整个地方使用它们进行实验并了解如何使用它们。不,我确实理解如何使用它们的概念,但我不知道何时以及何时不使用它们 - 我很惊讶许多在线网站和书籍未能涵盖如此重要的内容。
是否有人能像外行一样了解指针的使用时间和原因。 2.什么时候智能指针优于普通指针。
注意:我知道&但是要了解堆栈和堆分配事项。
感谢您的帮助。
答案 0 :(得分:0)
应该尽可能使用智能指针,因为它们提供了更好的内存管理,现在已经成为一种广泛使用的模式,被任何体面的c ++程序员都认可。如果您没有执行以下任何操作,则应该使用智能指针。
原始指针可用于某些无法使用智能指针的东西(原样,即可以修改它们)。您可以使用指针指向数组(尽管在c ++中最好使用std::vector
),您可以使用指向未定义类的指针作为类成员(使用前向声明),您可以使用指针算术等。