今天算是正式开始了校招实习面试和工作面试,之后把所有的面试经历写下来,这也是一个成长的过程。
英文面试,一面很简单,二面要去上海面,貌似终面都要去上海。
面试官gg很nice,上来先让英文自我介绍,说实话,这个面试我一点都没准备,结果一上来自我介绍就懵了,偷看着简历念了一番。
之后问了几个简单的技术问题:
1、什么是c++多态(Polymorphism),以及实现原理(这是语言知识,会根据你简历上写的擅长语言问的)。幸亏当时看了英文版的a tour of c++,要不然都不知道Polymorphism什么意思。然后就解释了一下什么是多态,以及virtual function, virtual table那一套,有一个点要注意,virtual table是class级别的,而不是object级别的,c++所有member function都是class级别的,所以class的权限控制也是class级别的。这个可以看看Inside the C++ Object Medel这本书,基本上看完了,c++的各种对象模型都明白了。
2、给一个字符串,char* str = "aaabbbcccdef",去除掉重复字符,要求inplace操作,不要申请额外内存。注:这个题表述有错误,应该用char str[] = "aaabbbcccdef",应为"aaabbbcccdef"是常量字符串,直接附给char*编译器会优化,导致str[1] = 'b'这样赋值会出错,我当时看着不是很对,但是也不是很确定就没有指出来,后来回来试了一下果然错了。当然c++的话,肯定要写string啊,raw point能不用则不用。
一开始我用的copy
for(int i = 0; str[i] != '