C++面试准备

Lig*_*dle 39 c++ logic

我接下来将与一家在金融软件行业工作的公司接受电话采访.面试主要是用C++,解决问题和逻辑.请告诉我这次面试的准备方法.我已经开始浏览C++中的Thinking并刷新概念.还有其他方法可以准备吗?请帮忙.

编辑:

谢谢大家的建议.我只是想补充一点,我目前刚从研究生院毕业,没有以前的经验.所以,你能否提出一些问题,要求新毕业生?

Kyl*_*lsh 53

确保您了解基本数据结构和算法.你更有可能被问到这些东西而不是食物链上的东西.通常会保存这些内容以进行面对面访谈.

换句话说:坚持基础,坚实的C++语法.此外,STL和Boost等常见库的知识也不会受到影响......但请确保您知道这些库给您带来了什么!最后,电话屏幕会剔除那些无法完成基本操作的人.证明你可以,你应该继续下一步.祝好运!

以下是一些面试问题的链接:

现在,为了完成起见,一些书籍:


Mat*_*att 46

我采访了几位专门关注他们的C++知识的候选人,如果有一个问题能很好地将人们对C++的了解放在一个渐变上,那就是这个:

尽可能强大地修复此内存泄漏:

void doSomething()
{
Foo* pFoo = new Foo();
[do some stuff]
}
  • +1将删除pFoo放在最后
  • +2用于将pFoo放在std :: auto_ptr中
  • +3用于了解RAII是什么 - 概念,如果不是首字母缩略词
  • +4提及auto_ptr的异常安全保证
  • +5用于将pFoo放入boost:shared_ptr
  • +6用于了解何时可能无法释放shared_ptr.
  • +7用于讨论垃圾收集技术以修复循环引用

这始终可以显示某人使用C++的时间.这是一个数据点,您可以用它来告诉您C++知识的规模.

编辑:我会建议有人在3级或以上的人员.

  • +1因为我学到了一些东西.谢谢! (7认同)
  • 只是出于好奇......为什么你更喜欢`boost :: shared_ptr`而不是更多信息?std :: auto_ptr`?我会更乐意与候选人做出回应 - "这取决于[做一些事情] _我自己. (4认同)
  • 确实.如果`auto_ptr`会这样做,但你想避免它的陷阱,可以使用`boost :: scoped_ptr`(或`std :: tr1 :: unique_ptr`). (4认同)
  • std :: auto_ptr是不可复制的 - 如果你试图通过值将它传递给另一个函数,那么该函数将_take的所有者_并且由于参数在函数调用结束时超出范围,然后释放它.可能不是你的想法.这是因为auto_ptr只接受new中的指针,并在超出范围时保证删除.可以复制Boost的shared_ptr,因为它保持内部引用计数,因此通过将值传递给函数可以通过递增引用计数来实现"您所期望的".只有当计数变为0时才会释放指针. (2认同)

the*_*rty 8

  • TopCoder上尝试一些练习题.

  • 查看Marshall Cline的C++ FAQ.如果决定向你提出一些"知识"问题,而不是"解决问题"的问题,那么这是学习一些新东西并掌握你已经知道的事情的好方法.