题 您的C ++备忘单上有什么? [关闭]


每隔一段时间,我就必须在我编写的大多数代码之间切换语言(无论是工作还是播放)。我发现C ++是那些需要大量心理缓存空间的语言之一,所以如果我从中休息一段时间,那么我会忘记很多细节。甚至可以将项目添加到STL容器或使用 static 各种环境中的存储关键字变得混乱(“就是这样 addappendpush......哦,是的 push_back“)。

那么当你编写C ++时,你喜欢什么基本花絮加载到你的大脑?

编辑:我应该说,我希望能够为此页面添加书签并将其用作我的备忘单:)


36
2017-10-06 17:12


起源


github.com/cirosantilli/cpp-cheat - Ciro Santilli 新疆改造中心 六四事件 法轮功


答案:


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

斯科特迈耶斯' 有效的C ++ 系列也很适合这个。

以下是适合我的快速基本内容:

  • 使用 std::swap()
  • “如果有疑问,请像投注那样做。” (斯科特迈耶斯)
  • const * 意味着不变的数据 * const 表示常量指针(向后读取decl!)。
  • 在具有动态分配数据的类中声明赋值运算符和复制构造函数。
  • 如果你自己没有声明一个,C ++会为你编写一个赋值运算符和复制构造函数。除非你声明它们(私有的,最有可能的)并且省略它们来定义它们。
  • 让operator =()返回一个引用 *this 
  • 在Derived的复制构造函数的init列表中调用Base(rhs)。
  • 呼叫 Base::operator=(rhs); 在Derived中 operator=() 
  • 检查自我分配 operator=()
  • 不执行 operator=() 通过调用复制构造函数(Herb Sutter, 写下你所知道的,知道你写的是什么
  • 记得 RAII
  • 通过引用捕获异常

19
2017-10-06 18:25





在我的备忘单上: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。


15
2017-10-07 03:12



我看到了关于如何记住这些的很好的回应,你只需要向后阅读它们。 ie int * const p - p是指向int int const的p的指针 - p是指向const int的指针。 - Dynite
是的,这也是一个很好的伎俩。 - jonner
另一种看待方式 int const * p 是* p是const,即p中的地址值是const而不是指针本身。同样 const p 暗示指针本身是const。 - Sandeep Datta
这并不复杂: const适用于左边(除非那里没有任何东西,在这种情况下它适用于右边) - Lightness Races in Orbit


我保持开放的C ++标准的PDF。它很适合快速查找所有库接口(特别是容器接口和iostream的东西)。它对于快速解决同事关于C ++语法和语义的争论也很有用。

我还没弄明白如何将PDF加载到我的大脑中。


9
2017-10-06 17:23



如果您成功将PDF加载到大脑中,我也会感兴趣! :) - Burkhard
我拿了HTML版本(我在标准委员会工作了一段时间),并把它变成了一个Microsoft Reader文件。将它保存在我的PocketPC上,以便随时随地访问! - James Curran
这是一件好事,允许搜索非常有用 - Tom
为此+1。对于非C ++程序员来说,这似乎有些过分,但它确实是该语言唯一合理的方法。 - jalf


由于我一直在C ++中工作,所以我将大部分语法保留在脑海中。对于我参考的库参考 SGI 和 约祖蒂斯 书。当我还没有完成C ++一段时间并且真的想要复习时,我会回过头来 有效的C ++

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

当所有其他方法都失败时,google和stackoverflow都是很棒的工具。


6
2017-10-06 17:33





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


5
2017-10-06 17:25



对于C ++,指向成员函数的指针是我在使用时总是要查找的。 - Kristopher Johnson


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

每次我必须这样做,我需要看一下这个。真正处理函数指针细节的任何东西总是倾向于调整我的大脑。我找到了 功能指针教程 是一个相当不错的参考。


5
2017-10-06 17:41



是的,但多久一次? - Matt Price
不仅仅是我愿意承认我们内部实施的信号。我可以使用boost来实现其中一些,但有些项目不允许这样做。 :( - Scott Saad


不是真的在备忘单上,并不是真正特定的C ++,但我有“冲洗缓冲区!”在一个粘滞便笺上提醒我,当我没有收到数据时可能出现的问题。


4
2017-10-07 03:28





我将这整个网站放在一般方便的秘籍表中:

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

cpp cheatsheet有点基础,但STL很有用。


4
2017-10-06 17:26





我使用该网站 cplusplus.com。它是C和C ++编程的绝佳参考。


3
2017-10-06 17:16



其实, 不是。 - Lightness Races in Orbit