面试问得很细,尤其是编程语言方面一面:
1. 我介绍、项目介绍;
2. 对面向对象的理解;
3. 用纯C语言模拟面向对象的方法
4. 用的C++哪个版本,了解哪些C++11的特性
5. 右值引用是什么,什么是右值什么是左值,为什么要用右值引用
6. move是干啥的,有什么作用,分析下面的语句, string a="hello"; string&b=a; string c=std::move(a); 每一步后,a的变化,a是在哪个里面变化的,自己写一个move函数
7. auto是干啥的,为什么要用auto,decltype又是干啥的,它跟auto一样吗
8. 写一个枚举类型,包含周一周二等: enum week{Mon=1,Tues}; 其中Mon、Tues是用什么数据类型存储的,另外一个枚举类可以再用Mon、Tues吗,为什么? C++11的枚举类型有什么改进(enum class week{}、存储类型自定义)?
9. 了解完美转发吗,为什么要用转发,举一个例子
10. constexpr常量表达式有什么用
11. 英语自我介绍,然后他用英语问了一些问题:了解哪些数据结构,快排的思想
12. 手写一个快排(中间因为我用的算法数据结构上面的Median3方法选枢纽元,他们没明白,而讨论了很久)
13. Qt中Q_OBJECT这个宏是干什么用的,哪些类会添加这个宏,添加这个宏的类有什么特点?
14. 了解QMake吗
15. Qt的信号可不可以连接一个信号而不是槽
16. Qt的编译器是C++吗,C++里面没有信号和槽,Qt怎么实现的这个功能
17. Qt中有没有自己写过的数据结构,还是说都是在.ui文件上点点点
18. 如果一个信号触发了,但是却没有进入到它的槽函数,怎么来排查bug
19. 工作意向地点、有哪些offer了,如果我们给了,你怎么排序这几个公司
20. 拿出他们打印的很多智力题,让我做了这个: 村庄与城镇:三个村庄A、B、C和三个城镇a、b、c坐落在如图所示的环形山内。由于历史原因,只有同名的村与镇之间才有来往。为方便交通,他们准备修铁路。问题是:如何在这个环形山内修三条铁路连通A村与A镇, B村与B镇,C村与C镇。而这些铁路相互不能相交。(挖山洞、修立交桥都不算,绝对是平面问题)。
二面:
1. 面向对象的理解,C++跟C语言的不同,C++相对于C语言的优点
2. C++跟C语言写代码都要遵循的思想
3. 了解哪些设计模式,在纸上手写一个单例模式的类,并解释
4. 给了一段代码(回忆出来的) #include #include char*copyMemBuffer(void* buff, int len) { char*ret = malloc(sizeof(char)*len); for (int i = 0;i < len;++i) ret[i] = *((char*)buff); return ret; } int main() { char*temp = NULL; temp = copyMemBuffer(&temp, sizeof(temp)); if (!temp) temp = ""; printf("%s", temp); if (temp) free(temp); } 让我分析其中的过程,有没有错误,free一个非堆的内存有什么影响
5. 自己最努力的时候
6. 依次分析前面面试过的这些公司,各自从面试过程中学到了什么
面试感受:很好;面试难度:非常困难;面试来源:校园招聘
共1个问题,1条回答
Q:手写用纯C语言模拟面向对象的方法