很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。为了帮助澄清这个问题,以便它可以重新打开, visit the help center




10年前关闭。




我记得第一次学习 STL 中的 vector ,一段时间后,我想在我的一个项目中使用 bool vector 。在看到一些奇怪的行为并做了一些研究之后,我了解到 a vector of bools is not really a vector of bools

在 C++ 中还有其他常见的陷阱需要避免吗?

最佳答案

一个简短的列表可能是:

  • 通过使用共享指针来管理内存分配和清理避免内存泄漏
  • 使用 Resource Acquisition Is Initialization (RAII) 习惯用法来管理资源清理 - 特别是在存在异常
  • 的情况下
  • 避免在构造函数中调用虚函数
  • 尽可能采用极简编码技术 - 例如,仅在需要时声明变量、范围变量和可能的早期设计。
  • 真正理解代码中的异常处理——包括你抛出的异常,以及你可能间接使用的类抛出的异常。这在存在模板的情况下尤其重要。

  • RAII、共享指针和极简编码当然不是 C++ 特有的,但它们有助于避免在使用该语言进行开发时经常出现的问题。

    关于这个主题的一些优秀书籍是:
  • 有效的 C++ - Scott Meyers
  • 更有效的 C++ - Scott Meyers
  • C++ 编码标准 - Sutter & Alexandrescu
  • C++ 常见问题解答 - Cline

  • 阅读这些书对我避免了你所问的那种陷阱的帮助比其他任何事情都大。

    关于c++ - 我应该避免哪些 C++ 陷阱?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30373/

    10-13 06:02