首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我应该避免哪些C++陷阱?

我应该避免哪些C++陷阱?
EN

Stack Overflow用户
提问于 2008-08-27 15:03:00
回答 17查看 17.4K关注 0票数 75

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

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

EN

回答 17

Stack Overflow用户

发布于 2008-08-27 15:15:18

有些人必须有能帮助你避免常见C++陷阱的C++书籍:

Effective C++

More Effective C++

Effective STL

Effective STL一书解释了bools问题的向量:)

票数 16
EN

Stack Overflow用户

发布于 2008-09-16 11:29:52

Brian有一个很棒的列表:我会添加“始终将单参数构造函数标记为显式(除非在极少数情况下需要自动类型转换)”。

票数 12
EN

Stack Overflow用户

发布于 2008-09-22 21:25:17

这不是一个具体的技巧,而是一个通用的指导原则:检查你的来源。C++是一门古老的语言,多年来它已经发生了很大的变化。最佳实践已经随之改变,但不幸的是,仍然有许多旧的信息。这里有一些非常好的书籍推荐-我可以第二次购买每一本Scott Meyer的C++书籍。熟悉Boost和Boost中使用的编码风格-参与该项目的人员处于C++设计的前沿。

不要重复发明轮子。熟悉STL和Boost,并尽可能使用它们的工具。特别是,使用STL字符串和集合,除非您有非常、非常好的理由不这样做。很好地了解auto_ptr和Boost智能指针库,了解每种类型的智能指针是在什么情况下使用的,然后在您可能使用原始指针的任何地方使用智能指针。您的代码将同样高效,并且不太容易发生内存泄漏。

使用static_cast、dynamic_cast、const_cast和reinterpret_cast,而不是C风格的强制转换。与C风格的转换不同,它们会让你知道你是否真的想要一个不同类型的转换,而不是你想要的类型。它们在视觉上脱颖而出,提醒读者演员阵容正在发生。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档