我有大约2/3年的C ++经验,但我的大部分职业生涯都是在做Java。我即将参加C ++编程角色的采访,我一直在考虑刷新C ++的最佳方法,以确保我不会被任何尴尬的问题所困扰。你会推荐什么?
答案 0 :(得分:9)
答案 1 :(得分:5)
作为受访者,我依靠经验。作为一名面试官,我最喜欢(通常也是唯一)的C ++面试问题是“告诉我有关复制构造函数的信息”。令人惊讶的是,这开放了多少途径,以及很少有人意识到这些途径 - 它可以进行非常短的访谈。如果受访者过去了,我会问“哪些是你最喜欢的C ++书籍,为什么?”
答案 2 :(得分:5)
了解语言。你可以尝试预测他们会问什么问题,但C ++可能意味着很多不同的东西,这取决于你问的对象。对于某些人来说,这是一个笨拙的Java,所有问题都将涉及动态内存分配,虚函数和继承。对于其他人来说,这完全是关于RAII,并且避免内存管理。
有些人认为STL是最重要的问题,有些人可能想深入了解一些语言的微妙方面(从Neil在答案中提到的复制构造函数到常见案例)未定义的行为,或异常安全)
这是一种庞大而复杂的语言,人们可以提出很多不同的问题。除非你知道他们可能会关注哪些领域,否则你不可能在最后一分钟刷新时取得很大成就。
答案 3 :(得分:4)
如果你有足够的时间尝试使用C ++编写应用程序 - 请仔细阅读基础知识,这样当你被要求显示编码技巧时,你将能够流利地编写代码。
我注意到在C ++中心访谈期间,通常会询问有关它是如何工作的问题:
new
- 如何分配内存时会发生什么?我想学习所有这些的好方法是阅读一本好的C ++书籍 - 如果你有胃口,你可以阅读Stroustrup book - 但必然会有其他书籍一样好(页面少)在他们)。
答案 4 :(得分:3)
答案 5 :(得分:3)
每个高级程序员都必须拥有C ++书籍:
Herb Sutter Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions
Herb Sutter More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions
Herb Sutter Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems, and Solutions
A.Alexandrescu和Herb Sutter C++ Coding Standards: 101 Rules, Guidelines, and Best Practices
Scott Meyers Effective C++: 55 Specific Ways to Improve Your Programs and Designs
Scott Meyers More Effective C++: 35 New Ways to Improve Your Programs and Designs
答案 6 :(得分:0)
这取决于:我去了一家大型游戏公司工作,90%的问题是图形和微优化问题(这是C#测试角色,我生命中最愚蠢的测试!)。
但是,如果你想要一个普通的桌面应用程序角色,你可能会被问及UI,或者如果你想要某种嵌入式计算角色,你可能会被问及优化和内存管理。
无论如何,我会刷你的BOOST,作为一个好的库的例子,以及你的指针知识。
答案 7 :(得分:0)
我只会回顾一下这种语言的基础知识:确保你记得如何创建类,知道何时通过引用传递它,何时通过指针传入,以及为什么你要这样做而不是传递值。为什么你需要一个虚方法,以及当你需要一个复制构造函数时,使用C ++样式转换和C样式转换的原因是什么
我想象一下,记住一两个关于C ++的战争故事会有所帮助:(“man,const correctness hard!”,“所以我曾经和同事/老师讨论过这个C ++的细节问题,我了解到......“
如果这项工作是针对入门级的C ++工作(它应该是你有限的C ++经验),我想这样会很好,并且你希望(希望)没有没有划桨/高级工程师指导你。
答案 8 :(得分:0)
“编写一个计算字节中'on'位数的函数”
永远不会变老...
我看到了一种很酷的按位方式,可以在4位或5位操作中计算32位DWORD中的所有位数!
如果我是这个时代的采访者,我会问“你对锁定免费编码有什么了解?”