C ++程序员应该使用哪些C ++习语?

C ++程序员应该知道哪些C ++习惯用法?

通过C ++习语,我的意思是devise模式或做某些事情的方式,只适用于C ++或更适用于C ++比大多数其他语言。

为什么要用这个成语呢,这个成语是什么呢?

这是一个列表 。 如果我不得不挑选一对夫妇,我可能会使用奇怪的循环模板模式或虚拟Contztructors。

到目前为止,学习和认识(几乎)C ++特有的最重要的“模式”是RAII (资源获取初始化)。

编辑:(回答编辑到问题中的额外问题)。 您主要使用RAII来(半)自动化资源pipe理。 最明显的用途是在拥有的对象超出范围时释放对象拥有的资源,例如释放内存或closures文件。

PIMPL,也称为IMPL ementation

模板元编程。 这很好,因为它基本上是编译时鸭式打字,所以你可以通过静态打字的速度获得大部分鸭式打字的灵活性。

如果你想充分利用STL,那么迭代器和函子/函数对象是必不可less的习惯用法。 迭代器的使用也隐含地依赖于“半开范围”成语。

开发强大的打字和const正确性也是非常有帮助的。

我也禁止默认的拷贝构造函数和赋值操作符。 我其实超越了这个,但那是最常见的。 如果不是隐含的,我认为生活会更容易。

RAII,COW,pimpl,demeter法(不知道是否可以归类为习惯用语),types特征和政策。 (COW和demeter法则不限于C ++)