我有大约2/3年的C++经验,但我的职业生涯大部分时间都在做Java。我即将面试一份C++编程角色,我一直在思考如何最好地刷一下我的C++技能,以确保不会被任何尴尬的问题所困扰。你有什么建议吗?
我有大约2/3年的C++经验,但我的职业生涯大部分时间都在做Java。我即将面试一份C++编程角色,我一直在思考如何最好地刷一下我的C++技能,以确保不会被任何尴尬的问题所困扰。你有什么建议吗?
Effective C++ by Scott Meyers
new
时会发生什么 - 内存是如何分配的?
- 结构体和类有什么区别?
- 为什么应该将类的析构函数标记为虚函数?Stroustrup
,它太全面了,恐怕我只会推荐它给那些已经对C ++有很强的掌握的人(反常的是)。也许我被语法的重点所吓倒了... - Matthieu M.作为一位面试者,我依赖经验。而作为一位面试官,我的最爱(也是唯一的)C++面试问题是“告诉我拷贝构造函数的相关知识”。这个问题可以打开很多思路,但很少有人意识到这一点——因此可能会导致面试非常短暂。如果面试者能够回答这个问题,我接下来会问“你最喜欢的C++书籍是哪些,为什么?”
每个高级程序员都必备的C++书籍:
Herb Sutter的《Exceptional C++: 47道工程学谜题、编程问题及解决方案》
Herb Sutter的《More Exceptional C++: 40道新的工程学谜题、编程问题及解决方案》
Herb Sutter的《Exceptional C++ Style: 40道新的工程学谜题、编程问题及解决方案》
A.Alexandrescu和Herb Sutter的《C++ Coding Standards: 101条规则、指南及最佳实践》
Scott Meyers的《Effective C++: 改善程序与设计的55个具体做法》
Scott Meyers的《More Effective C++: 改善程序与设计的35个新做法》
Scott Meyers的《Effective STL: 使用STL的50个有效方法》
这要看情况而定:我曾经应聘过一家大型游戏公司的C#测试岗位,90%的问题都是关于图形和微观优化的问题(这是我人生中最愚蠢的测试!)。
然而,如果你应聘的是普通的桌面应用程序开发岗位,你可能会被问及UI相关的问题;如果你应聘的是嵌入式计算岗位,你可能会被问及优化和内存管理方面的问题。
无论如何,我建议你复习一下BOOST库,这是一个很好的库,以及指针知识。
我建议您先复习语言的基础知识:确保您记得如何创建类,知道何时通过引用传递和何时通过指针传递,并了解为什么要这样做而不是按值传递。您需要虚方法的原因以及使用C++风格转换与C风格转换的原因,何时需要复制构造函数等等。
我想,回忆一两个关于C++的故事可能会有所帮助:(“伙计,常量正确性很难!”,“所以我曾经和同事/老师就C++的一个细节问题争吵过,我学到了…”)
如果这份工作是面向入门级别的C++工作(考虑到您有限的C++经验,应该是这样),那么我认为这样做是可以的,您将不会被深度投入而没有向导或高级工程师来指导您。