c++ - 使用 boost 指针会改变您的 OO 设计方法吗?

标签 c++ boost oop

从 C++ 切换到 C++ w/boost 后,您认为您的 OOD 技能 boost 了吗?

您是否注意到“普通”C++ 代码中您不会认为已经切换的模式,或者您是否发现它支持更抽象的设计?

我想我真的很想知道您是否只是将它用作一种工具,或者您是否改变了整个 OO 设计方法以在使用 boost 指针时更有效地使用对象。

编辑:总结

这个问题有点奇怪——我问这个问题是因为我遇到过太多根本不是面向对象的 C++ 代码。我相当确定(有了这个以及我在转向托管语言之前所做的工作),用 C++ 的 OO 比托管语言更难思考。

通过查看这些帖子,我猜你在发现需要更好的内存管理方法之前了解了 OO 的值(value),所以当你开始寻找像 Boost 这样的东西时,你已经在使用 OO方法论相当重要。

我有点期待一堆答案说它帮助他们在 OO 中思考,但现在我想起来了,如果你不使用 OO, boost 指针不是很有帮助,你不会看到对它们的需求(这样你就不会回复)。

最佳答案

在大约六年前我用 C++ 做的一个项目中,我们实现了我们自己的类似 boost 的自动指针方案。它工作得很好,除了其中的各种错误。 (当然希望我们使用了 boost...)

尽管如此,它并没有真正改变我们开发代码的方式。面向对象的设计,无论有无托管指针,都非常相似。有时您需要返回对象,或者有时指向对象的指针更为重要。智能指针的优点与您设计应用程序的方式关系不大。您可以传递相同的数据并相当确定它不会泄漏,而不是四处传递具有潜在危险的内存泄漏。

在这方面,您可以使用智能指针做更多的事情:简化您的代码。无需到处返回整数或基本结构,您可以更自由地传递复杂的数据结构或类而无需担心。您可以更快地构建更复杂的应用程序,而不必担心太多。它让您在需要时拥有 C 和 C++ 的原始功能(如果您不需要它,为什么要使用 C 或 C++?),并且内存管理的简便性极大地 boost 了工作效率。如果自动管理的内存没有用,地球上几乎所有其他语言都不会使用它!

关于c++ - 使用 boost 指针会改变您的 OO 设计方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/570693/

相关文章:

c++ - 使用 FFT (FFTW) 计算两个函数的卷积

c++ - 我如何使用QTable?添加、编辑、删除和检索行

c++ - 找不到 Boost(缺少 : unit_test_framework) (found version "1.71.0")

java - 在 python 中使用枚举创建子类的新实例

javascript - 函数内部的 Firebase 查询返回 null

c++ - 是否有任何技巧可以检测在执行另一个析构函数期间是否创建了一个对象?

c++: 为什么我们不能将 char ** 转换为 const char **

java - 调用基于 Spring 的 Web 服务的客户端架构

c++ - 来自绑定(bind)方法的原始函数指针

c++ - 将错误 Boost.Python 与 STLport 作为 stdlib 链接