我想大多数人都知道我在做什么.你开始一份新工作,并且在扫描代码的第一周左右,你就会发现你正处于另一个C店里,偶尔会出现流或不满的用户定义的课程.你很快就会意识到,你不仅不会学到任何新知识,而且要求你不要使用某些东西只是时间问题,因为没有人理解它们,也无法维持你的工作.
你经常看到一些新技术,StackOverflow,只是意识到,如果你曾经在工作中使用它,你会遇到困惑或烦恼吗?
根据您的经验,这些地方是常态还是例外?
在面试环境中,你如何(或将如何)尝试确定一个群体的复杂程度和对C++的承诺?例如,我曾尝试询问有关公司使用STL,Boost,第三方库等事情的问题,但这似乎只是逐渐接近你曾经在其中找到的现实情况.思考?
它真的是全面的.在光谱的一端,我曾在一个地方工作,最近在C中重写了代码.最近在10年前.每个人都对这种新奇的技术持怀疑态度.
稍微远一点,你会发现C程序员碰巧有启用C++功能的编译器.他们会涉足"class"关键字.但除此之外,他们几乎用C写作.
接下来,我想你会找到那些只是简单地继承和多态的人.这些男人和女孩会对MFC或wxWidgets计划感到震惊,认为这是最伟大的.
你会走得更远,找到那些只读Meyer的人.它们都是关于如何有效地使用STL.他们有一个基本的模板概念,主要与STL使用它们的方式相同.
然后你就拥有了Modern C++ Template Metaprogramming极客.如今,我们中的许多人以提升和善良的形式使用他们的作品.实际上很少有模板元编程.这可能是一件好事.
我已经看到在每个级别编写的完美代码.
我一直很喜欢C++的一个很酷的事情是,在每个增加的复杂程度,成本可以用"如何在C中实现这种新的抽象"来概念化.所以我可以概念化继承和多态性正在增加函数指针查找的成本.因为我已经看过这个并用C语言写的,所以我知道我在做什么.我也了解模板是如何工作的,因为预处理器在C中的工作方式.这适用于C++和C世界中的大多数功能.
由于很容易将概念映射到它们在C中的实现方式,因此我可以轻松地查看底层架构如何运行我的代码.