在面试中查看C ++时,您会建议什么技巧?

时间:2010-02-09 09:21:59

标签: c++

我有大约2/3年的C ++经验,但我的大部分职业生涯都是在做Java。我即将参加C ++编程角色的采访,我一直在考虑刷新C ++的最佳方法,以确保我不会被任何尴尬的问题所困扰。你会推荐什么?

9 个答案:

答案 0 :(得分:9)

Scott Meyers的

Effective C++

答案 1 :(得分:5)

作为受访者,我依靠经验。作为一名面试官,我最喜欢(通常也是唯一)的C ++面试问题是“告诉我有关复制构造函数的信息”。令人惊讶的是,这开放了多少途径,以及很少有人意识到这些途径 - 它可以进行非常短的访谈。如果受访者过去了,我会问“哪些是你最喜欢的C ++书籍,为什么?”

答案 2 :(得分:5)

了解语言。你可以尝试预测他们会问什么问题,但C ++可能意味着很多不同的东西,这取决于你问的对象。对于某些人来说,这是一个笨拙的Java,所有问题都将涉及动态内存分配,虚函数和继承。对于其他人来说,这完全是关于RAII,并且避免内存管理。

有些人认为STL是最重要的问题,有些人可能想深入了解一些语言的微妙方面(从Neil在答案中提到的复制构造函数到常见案例)未定义的行为,或异常安全)

这是一种庞大而复杂的语言,人们可以提出很多不同的问题。除非你知道他们可能会关注哪些领域,否则你不可能在最后一分钟刷新时取得很大成就。

答案 3 :(得分:4)

如果你有足够的时间尝试使用C ++编写应用程序 - 请仔细阅读基础知识,这样当你被要求显示编码技巧时,你将能够流利地编写代码。

我注意到在C ++中心访谈期间,通常会询问有关它是如何工作的问题:

  • 如何实施虚拟方法?
  • 当你致电new - 如何分配内存时会发生什么?
  • struct和class有什么区别?
  • 为什么要把你的班级标记为虚拟?

我想学习所有这些的好方法是阅读一本好的C ++书籍 - 如果你有胃口,你可以阅读Stroustrup book - 但必然会有其他书籍一样好(页面少)在他们)。

查看C++ Style and Technique FAQ

答案 4 :(得分:3)

  • 查看有关SO的问题 C++,OOP标签。
  • C++ FAQ

答案 5 :(得分:3)

答案 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中的所有位数!

如果我是这个时代的采访者,我会问“你对锁定免费编码有什么了解?”