2011-11-15 60 views
-1

可能重复:
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.何时智能指针比普通指针更受青睐。

注意:虽然我知道&了解堆栈和堆分配的事情。

感谢您的帮助。

+1

指针是非常难以学习和理解的 - 尽管相关问题可能无法回答关于指针和特定智能指针的所有问题,但是您的问题也非常宽泛,并且无论如何都要关闭。我建议你先阅读这个问题,然后再回来问任何**具体的问题,你仍然有关于指针的问题。 – Justin

+0

如果你是C++新手,你根本不应该使用任何原始指针。我敢肯定,你可能尝试的任何初学者项目都可以用更好,更清洁的方式书写,不需要任何指针或“新”。 –

+0

可能重复的第一个链接不能回答我的问题。我想要的东西就像是一个使用指针的情况列表,这是一个好主意,并且它毫无意义 - 这个答案只解释了它们是如何工作的(尽管,我必须说这是一个很好的解释)。 – BeginnerBob

回答

0

智能指针应该用在他们可以提供更好的内存管理的地方,并且现在是一个被广泛使用的模式,被任何体面的C++程序员所认可。如果你没有做任何以下的事情,你应该使用智能指针。

原始指针可用于某些智能指针不能使用的地方(原样就是说,它们可以被修改)。你可以使用一个指针指向一个数组(尽管在C++中最好使用std::vector),你可以使用指向未定义的类的指针作为类成员(使用前向声明),你可以做指针运算等等。