从C++切换到C++ w/boost之后,您认为您的OOD技能有所提高吗?
您是否注意到"普通"C++代码中的模式,您不会考虑将其切换,或者您是否发现它能够实现更抽象的设计?
我想我真的很想知道你是否只是将它用作工具,或者你是否将整个方法改为OO设计,以便在使用boost指针时更有效地使用对象.
编辑:总结
这个问题有点奇怪 - 我问的是因为我遇到了很多C++代码,而这些代码根本就不是OO.我很确定(在转向托管语言之前,我已经完成了这项工作),在C++中使用OO比在托管语言中更难思考.
通过查看这些帖子,我猜你在找到需要更好的方法来管理内存之前就已经了解了OO的价值,所以当你开始寻找像Boost这样的东西时,你已经在使用OO方法了很多.
我有点期待一些答案,说它帮助他们在OO中思考,但现在我考虑一下,如果你没有使用OO,那么提升指针并不是很有帮助,你也不会觉得需要他们(所以你不会回复).
在我六年前做的C++项目中,我们实现了自己的类似boost的自动指针方案.它工作得很好,除了它中的各种错误.(当然希望我们使用了提升...)
尽管如此,它确实没有改变我们开发代码的方式.面向对象的设计,有或没有托管指针,非常相似.有时你需要返回对象,或指向对象的指针更重要的时候.关于智能指针的好处只与您设计应用程序的方式有关.您可以传递相同的数据并确保它不会泄漏,而不是传递潜在危险的内存泄漏.
在这方面,有些事情你可以用智能指针做更多的事情:简化你的代码.您可以更自由地传递复杂的数据结构或类,而无需担心,而不是在每个地方返回整数或基本结构.您可以更快地构建更复杂的应用程序,而不必担心这么多.它可以让你在需要时拥有C和C++的原始功能(如果你不需要它,你为什么要使用C或C++?)并且易于内存管理,这样可以提高生产力.如果自动管理的内存没有用,它就不会出现在地球上几乎所有其他语言中!