2018深信服醒狮计划面试题以及经验

版权声明:本文为博主原创文章,未经博主允许不得转载

  突然收到面试通知搞得我猝不及防。现在分享一下自己的面试题目和感想。希望对大家有所帮助。由于楼主比较水,又没有时间好好复习,所以感觉面试不是很好,结果还没有出来,并不知道,能不能收到offer。所以,大家勿喷。

  刚一进门,面试官让自我介绍。我就巴拉巴拉说了一堆自己会什么啊,学过什么啊,做过什么项目的,至于获得过什么奖项啥的根本没说,其实说了也没多大用,最主要的原因是我紧张,忘了说,哈哈。

来来来,进入正题

1、什么是内联函数啊,什么是宏啊?

内联函数:是函数,可以重载。是C++为了提高程序的运行效率做的一种改进。就是在编译阶段将编译代码和其他的程序代码“内联”起来。我个人觉得内联函数是借助空间换时间。内联函数,就是使用相应的函数代码替换函数调用。如果执行这段函数代码的时间超过函数调用的时间,使用内联函数就显得苍白无力了。只有在代码执行很短的时候,才能显示出内联函数的优越性。

宏定义不是函数,只是使用起来像函数。用复制宏代码的方式代替函数调用。宏定义在预编译时候使用宏名代替宏体,就是字符串替换。宏定义没有类型检查,无论对错,直接替换。

2、什么是构造函数、析构函数

构造函数:专门用于创建新对象的函数。构造函数名和类名相同,没有返回值,没有声明类型。构造函数用new分配内存。

析构函数:用构造函数创建对象后,程序负责跟踪该程序,直到过期为止。对象过期后会调用特殊的成员函数--析构函数。析构函数完成清理工作,用delete释放内存。

3、什么是拷贝构造函数

拷贝构造函数是一种特殊的构造函数。它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。

拷贝构造函数通常用于:

1.通过使用另一个同类型的对象来初始化新创建的对象。

2.复制对象把它作为参数传递给函数。

3.复制对象,并从函数返回这个对象。

4、堆和栈

这个概念应该可以说好多好多。我当时激动的只说了一点。

堆:可以是不连续的,释放由程序员控制,容易产生memory leak。堆只能动态分配;

栈:是连续的,是由编译器自动管理,无需人工控制。在计算机底层实现,效率比较高。还有就是栈既可以动态分配,也可以静态分配。

5、设计模式你知道那几个,实现一种

 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模 式、状态模式、访问者模式、中介者模式、解释器模式。

其实还有两类:并发型模式和线程池模式。

我只说了单例模式,然后让我实现。

6、strcpy底层如何实现的(手写代码)

巴拉巴拉写了一堆,不知道,自己写对了没,我用的for循环放到一个新的数组里面实现的。各位大神有知道的,可以评论区留言一下,共同进步。

7、虚函数和纯虚函数

  虚函数的作用:运行时多态。既有定义,也有实现。

  纯虚函数,只定义没有实现,就是“抽象类”。

还有就是我同学问到了冒泡排序的算法手写,掌握排序算法也是必须的啦。最后还问了linux的简单命令,还有就是自学了什么,个人觉得,面试官是想了解你的自学能力吧。

   基本上就记得这么多了,昨天面试完,很累就没写,今天发现有的问题都忘记了,我总共面了30多分钟,其他人也有时间少点的,希望对于初次面试的人儿有点帮助。因为我也是第一次面,超级紧张(ps:基础有点差原因吧)。

 

猜你喜欢

转载自blog.csdn.net/smallnancy/article/details/79956325