我记得第一次学习 STL 中的 vector ,一段时间后,我想在我的一个项目中使用 bool vector 。在看到一些奇怪的行为并做了一些研究后,我了解到 a vector of bools is not really a vector of bools .
在 C++ 中是否还有其他常见的陷阱需要避免?
最佳答案
一个简短的列表可能是:
- 通过使用共享指针来管理内存分配和清理,避免内存泄漏
- 使用 Resource Acquisition Is Initialization (RAII) 管理资源清理的习惯用法 - 尤其是在存在异常的情况下
- 避免在构造函数中调用虚函数
- 尽可能采用极简编码技术 - 例如,仅在需要时声明变量、确定变量范围以及尽可能提前设计。
- 真正了解您的代码中的异常处理 - 无论是您抛出的异常,还是您可能间接使用的类抛出的异常。这在存在模板的情况下尤其重要。
RAII、共享指针和极简编码当然不是 C++ 特有的,但它们有助于避免在使用该语言进行开发时经常出现的问题。
一些关于这个主题的优秀书籍是:
- Effective C++ - Scott Meyers
- 更有效的 C++ - Scott Meyers
- C++ 编码标准 - Sutter 和 Alexandrescu
- C++ 常见问题解答 - Cline
阅读这些书帮助我避免了您所询问的那种陷阱。
关于c++ - 我应该避免哪些 C++ 陷阱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30373/