【发布时间】:2011-01-24 04:19:29
【问题描述】:
今天在阅读 proggit 时,我在 post 中看到了这条评论,关于 C++ 如何在 Google Ai 挑战中占据领先地位。用户reventlov声明
我在使用 C++ 时遇到的最大问题是,如果你没有真正理解所有需要理解的东西才能很好地使用 C++,就太容易认为自己是“C++ 程序员”了。
您必须了解 RAII,知道如何使用命名空间,并了解正确的异常处理(例如,您应该能够解释为什么 STL 中的 pop() 方法不返回它们删除的值)。您必须知道标准库中的三代函数中哪一个是正确的。您应该熟悉 PIMPL 等概念。您需要了解标准库(尤其是 STL)的设计是如何工作的。您需要了解宏如何与命名空间交互,为什么通常不应该在 C++ 中使用宏,以及应该使用什么(通常是模板或内联,很少是类)。您需要了解 boost。
我认为我是他提到的那些毫无头绪的 C++ 程序员之一。为了简短起见,我的问题是
- 您能否举一个典型的 RAII 监督错误的示例,例如哪些最佳实践规定了 RAII 的使用,但程序员使用其他方式实现了?
- 为什么 STL 中的 pop() 方法不返回它们删除的值?
- 我阅读了 PIMPL 的 Wikipedia 条目,但没有任何理解。您能否举一个 PIMPL 习语的典型用法示例。
【问题讨论】:
-
也许你会更高兴留在 reddit 上?这里的规则是一次一个问题。
-
@Neil,哈哈,这将成为你的下一个 10+ 评论 xD
-
作为一般规则,问题主题应反映所提出的问题。我相信你会因为这个聪明的标题而受到一些关注,但当有人搜索你提到的主题时,它并没有多大帮助。
-
@recipriversexclusion:我认为人们不会善意地为自己的利益而“吸引注意力”。例如,参见meta.stackexchange.com/questions/26305/… 所附的评论。你的帖子应该有自己的优点,而不是因为你选择了一个吸引人但不相关的标题,或者假装赏金(在 joshhunt 的情况下),等等。
-
-1。应该分成单独的问题。对于搜索特定问题的其他人没有用。正如其他人试图指出的那样,这不是一个讨论各种技术的讨论网站,它是一种汇编个人直接问题和评级或批准答案的方式。
标签: c++