广联达提前批C++面经
赶在最后一批5.25笔试。然后又经历了两轮约面试抢场次,终于约上了6.10的面试。
6.10 一面:
1.自我介绍,学校和科研项目。因为我的科研项目用的是C#和Python,所以面试官还特意问我是不是没做过C++项目,我尴尬点头微笑。面试官:哦那大学学过C和C++吧,就考你一些C++基础吧。
2.说下C++的构造顺序
一下就给我问懵了,先说了个先调用基类构造函数再调用派生类构造函数。后来在引导下,又回答了个类的成员变量是按照声明顺序构造,而不是构造函数的参数列表里的顺序构造。但是他好像想听更详细的,比如有静态成员函数的话怎么办啊之类的。
3.new和malloc的区别。
答了下关键字/库函数,分配失败的话是否抛出异常,new会先调用malloc再调构造函数。应该回答更多的,比如返回值、参数之类的。(我面试前明明刚看过的,但new和malloc哪个是关键字哪个是库函数还绕了半天,捂脸)
4.vector底层实现,如何扩容。
另外开辟2倍空间,拷贝过去。
5.在文件中定义了一个全局变量,在本文件和其他文件中如何使用它。
本文件直接用就好,其他文件用extern关键字。追问其他文件要使用还有什么方法,不会,想了半天,后来他说就是最朴实的,引用下那个文件的头文件。
6.在文件中定义了一个全局变量,不想让其他文件使用,要怎么做。
不会,面试官说去学一下匿名命名空间,嗯嗯好的。
7.sizeof一个空类。
这题我会,刚看完其他人的面经!是1个字节!
接下来是一些衍生:给这个空类加一个int*的指针呢?(我:指针是4个字节)如果它还继承了一个有虚析构函数的类呢?(我:不会)
8.讲一讲动态的多态。
动态的多态就是重写,静态的多态是重载(好家伙我才知道,我还搁那叭叭的,多态分为重载和重写,他直接问的动态的多态)。解释重写,虚表,虚表指针blabla。
面试官:一个虚表指针多大呢,32位系统?(我:4个字节)那刚刚那道题是多少呢?(我:我猜是8个字节)嗯就是8个字节,4+4。(真的很循循善诱了!)
到这里才13min。不知道是他没题可问了,还是觉得我没救了,开始让我反问了。
反问:
1.你们新人进去都做什么工作呀?
进的组也不一定就是面试官的组,所以不一定,但都会有师傅带的。
2.你们工作时间怎么样?
早9晚6,如果是9点半上班就6点半下班,最晚是早上9点半打卡。但每个组也不太一样。
面试官最后说,结果会有hr给出,请耐心等待。应该不会有二面了吧(微笑
投的比较晚,应该没hc了,就想着练一练面试,好几个月没有面试了。因为实在没有准备好,面试前还是很紧张的,有上刑场的感觉。感觉这次面试题真的和牛客上其他广联达面经交叉挺多的。
真的该好好刷题复习八股了啊!