注意:标记为社区维基。
最近几天,我意识到我对C ++知之甚少。
此外:
对于一个优秀的C ++程序员,还必须知道哪些其他技术?
谢谢!
答案 0 :(得分:5)
我认为这应该涵盖它:
答案 1 :(得分:4)
答案 2 :(得分:2)
对于一个优秀的C ++程序员来说,前两个是“必须知道的”。 “优秀的C ++程序员”不会让操作员过载以获得乐趣。
答案 3 :(得分:1)
基本:
也很有用:
对于吸吮或在特殊情况下有用:
答案 4 :(得分:0)
(几乎不是必须知道的,但仍然有用)使用运算符重载和模板元编程来编写特定于域的语言(参见Boost.Spirit的一个很好的例子) - 但这是让你自己在脚下拍摄的东西也很容易。
答案 5 :(得分:0)
我以前改进c ++的方法是阅读leveldb的源代码。因为leveldb是产品级代码。因此,您可以从真实产品中学习cpp习语和设计模式。让我给你看一些例子
Leveldb使用Pimpl成语,几乎在所有的头文件中,例如table.h table_build.h write_batch.h。您可以直接从代码中学习
Leveldb使用了很多OO设计模式,比如构建模式,表有table_build类来构建表,块有block_build类来构建块Leveldb也使用Iterator模式,迭代器使我们使用leveldb更方便。
所以我认为leveldb包含许多c ++工程师应该知道的习语或设计模式。