坐标:无锡 月薪 10k,c++/qt 开发人员一名
1 一个类,成员函数 f1 会抛出异常,在 linux 下,一个进程里产出了 A 和 B 两个线程,线程 A 调用该类对象的成员函数 f1,抛出异常,如何在线程 B 中捕获该异常 追问,如果换成两个不同进程,该如何捕获?
2 问:你用过智能指针么? 我:很少用 问:你不用智能指针的话如何避免内存泄露? 我:。。。。(不知道如何回答这个问题,他的意思好像没有智能指针就会内存泄露。。)
3 问:一个函数提示越界错误该肿么办? 我:各种方法找错误,GDB,异常代码,各种测试等 问:如果你找不出来那该怎么办? 我:。。。。(我真不知道这问题该怎么回答,这到底想考我哪方面的知识) 追问:如果产品在客户那里发生问题,你又找不出原因,那该怎么办? 我:。。。。。(我还是不知道他想考我啥。。)
这是我在无锡飞谱电子遇到的面试题,我都没回答的出来,然后 GG 了?
1
current 2019-03-01 10:44:46 +08:00 1
第一个问题我猜是想问 promise ?可以跨进程的 C++异常没有听说过。
第二个智能指针应该是常见问题。即使不用,基本概念和 raii 还是应该知道的,不过只理解为内存泄漏也有点少了。另外如果你写的代码是某些流程稳定可控的底层组件,不使用智能指针我觉得是完全可以接受的。 第三个问题我觉得挺扯的。。。报了错找不出来我特么能怎么办?当然是删库跑路啊 如果面试问题和过程真的如你所说,我觉得这个面试官是不合格的。 |
2
after1990s 2019-03-01 14:05:51 +08:00 via Android
1.Windows 下有 API 可以安装一个进程级的异常处理函数。Linux 下不清楚。跨进程捕获异常需要捕获进程注册为调试器,附加到被捕获进程。
2.面试大概是要问,不适应智能指针怎么保证资源一定会释放。 3.重载 new 和 delete. |
3
after1990s 2019-03-01 14:06:22 +08:00 via Android
s/适应 /使用 /g
|