你的C ++作弊表上有什么?

每隔一段时间,我就必须在我编写的大部分代码(无论是工作还是玩游戏)之间切换语言。 我发现C ++是那些需要大量心理caching空间的语言之一,所以如果我从这个caching中抽出很长时间,那么我会忘记很多细节。 甚至像在STL容器中添加项目或在各种上下文中使用static存储关键字一样,所有的东西都变得混乱起来(“ addappendpush …哦,它是push_back ”)。

那么当你编写C ++的时候,你喜欢把什么重要的东西加载到你的脑中呢?

编辑:我应该说,我希望能够collections本页,并将其作为我的cheatsheet 🙂

当我从Java切换回C ++时,我喜欢从Herb Sutter和Andrei Alexandrescu的C ++编码标准中查看项目。

斯科特·迈耶斯的Effective C ++系列也非常棒。

这里是快速的基本东西,为我工作:

  • 使用std::swap()
  • “如有疑问,请按照整数进行。” (斯科特·迈耶斯)
  • const *表示常量数据, * const表示常量指针(向后读取decl!)。
  • 在具有dynamic分配数据的类中声明赋值运算符和复制构造函数。
  • 如果你不自己声明一个,C ++会为你写一个赋值操作符和拷贝构造函数。 除非你宣布他们(私人,很可能),并且省略定义它们。
  • 运算符=()返回*this的引用
  • 在Derived的复制构造函数的init列表中调用Base(rhs)。
  • 调用Base::operator=(rhs); 在派生的operator=()
  • operator=()检查赋值给self
  • 不要通过调用复制构造函数来实现operator=() (Herb Sutter, 写下你所知道的,并且知道你在写什么 )
  • 记得RAII
  • 通过引用来捕获exception

在我的作品中:const和指针之间的交互:

 int * p; // pointer int const * p; // pointer to const value int * const p; // const pointer int const * const p; // const pointer to const value 

实质上,将声明拆分为*符号,如果const落在左边,则指向的值是const,如果落在右边,则指针本身是const。

我保持打开C ++标准的PDF。 快速查找所有的库接口(特别是容器接口和iostream的东西)是很好的。 快速解决同事关于C ++语法和语义的观点也很有用。

我还没有想出如何将PDF加载到我的大脑。

因为我一直在用C ++工作,所以我把大部分的语法都放在脑海里。 对于图书馆参考,我使用sgi和Josuttis的书。 当我还没有完成C ++一段时间,真的想要进行一次复习时,我会回到Effective C ++ 。

当我需要更深入的问题时,我会参考标准或Stroustrup的书。

当一切都失败时,谷歌和stackoverflow是伟大的工具。

在我的C Cheatsheet(以及C ++中的扩展)上,指向函数语法的指针。

实现对非静态C ++成员函数的callback

每次我必须这样做,我需要看这个。 真的,处理函数指针细节的任何事情总是倾向于调整我的大脑。 我发现函数指针教程是一个相当好的参考。

不是真的在备忘单上,而不是特定于C ++,但我有“冲洗缓冲区! 在粘滞便笺上提醒我什么时候我没有收到数据可能是错误的。

一般情况下,我将这个站点保存在一个方便的地方:

http://www.cheat-sheets.org/#CPP

cpp作弊表是有点基本的,但STL是有用的。

我使用网站cplusplus.com 。 这是C和C ++编程的一个很好的参考。

模板专业化。 我总是需要查找它。

我有一个运算符优先级图表的一个副本钉在我的立方体墙上。

Scott Meyer的TR1摘要页面, http://www.aristeia.com/EC3E/TR1_info.html

就运营商而言, cpp.operator-precedence.com

实际上,让我在C#和C ++之间切换最多的是构造函数语法。 (我一直想用“新”的一切)。

用于STL和其他标准<include>的Dinkumware Compleat Reference 。

对于那些想快速参考和回顾的人来说,这里有C ++ Cheat Sheet

C ++作弊表 – 第1部分
C ++作弊表 – 第2部分

访问谷歌和input足够的能力。

无可否认,我在工作环境中获得了近乎保证的networking访问。 如果不出于任何原因,我也有三个标准PDF文件。

这个缺点是在C ++访谈的实际Q&A部分中的猜测/知识比率很高。 好处是,我非常擅长我的工作。 :P