今天在阅读proggit时,我在post上发表了关于Google Ai挑战中的顶级位置是如何被C++采用的评论。用户reventlov
声明关于RAII,STL流行音乐和PIMPL的基本问题
我与C++最大的问题是,它是waaay太容易认为你是一个“C++程序员”并没有真正理解你需要了解使用C++可以接受很好的事情。你必须知道RAII,并知道使用名称空间,并理解适当的异常处理(例如,你应该能够解释为什么STL中的pop()方法不返回它们移除的值) 。你必须知道标准库中三代函数中哪一个是正确的。你应该熟悉像PIMPL这样的概念。您需要了解标准库(尤其是STL)的设计是如何工作的。您需要了解宏与命名空间的交互方式,以及为什么您通常不应该在C++中使用宏以及您应该使用什么(通常是模板或内联,很少是类)。你需要知道关于提升。
我想我是他提到的那些无知的C++程序员之一。为了保持这个简短,我的问题是
- 你可以举一个典型的RAII监督错误的例子,例如,哪里有最佳实践要求使用RAII,但程序员是否采用其他方式实施?
- 为什么 STL中的pop()方法返回它们删除的值?
- 我读了PIMPL的维基百科条目,不理解其中的任何内容。你能举一个典型的PIMPL习惯用法的例子吗?
我不明白问题1,你能改说吗? – 2010-03-05 15:41:49
也许你会更高兴留在reddit?这里的规则是一次一个问题。 – 2010-03-05 15:42:48
@尼尔,大声笑这将成为你的下一个10+评论xD – 2010-03-05 15:45:09