C ++程序员应该知道哪些C ++成语?
通过C ++习语,我的意思是设计模式或做某些事情的方式,这些事情只适用于C ++或更适用于C ++,而不是大多数其他语言。
为什么一个人应该使用成语,这些成语会完成什么?
答案 0 :(得分:55)
到目前为止,学习和了解(几乎)C ++独有的最重要的“模式”是RAII(资源获取是初始化)。
编辑:(回答编辑到问题中的额外问题)。您主要使用RAII(半)自动化资源管理。最明显的用途是在拥有对象超出范围时释放对象拥有的资源,例如释放内存或关闭文件。
答案 1 :(得分:28)
这是一个list。如果我不得不选择一对,我可能会选择奇怪的重复模板模式或虚拟结构。
答案 2 :(得分:11)
PIMPL,又名 P 对 IMPL 的影响?
答案 3 :(得分:8)
模板元编程。这很棒,因为它基本上是编译时的鸭子打字,所以你可以通过静态输入的速度获得鸭子打字的大部分灵活性。
答案 4 :(得分:7)
如果你想充分利用STL,那么迭代器和函子/函数对象就是必不可少的习惯用法。迭代器的使用也隐含地依赖于“半开放范围”的习惯。
答案 5 :(得分:6)
利用强大的打字和const
正确性也非常有用。
我还禁止默认的复制构造函数和赋值运算符。我实际上超越了这一点,但这些是最常见的。我认为如果不隐含生活会更容易。
答案 6 :(得分:5)
RAII,COW,pimpl,demeter法则(不确定是否可归类为成语),类型特征和政策。 (虽然COW和demeter定律不限于C ++)