首页 > 资料专栏 > HRM > 人力资源 > 面试甄选 > 百度校园招聘笔试试题_南京PC客户端开发笔试题DOC

百度校园招聘笔试试题_南京PC客户端开发笔试题DOC

资料大小:5KB(压缩后)
文档格式:DOC
资料语言:中文版/英文版/日文版
解压密码:m448
更新时间:2022/8/4(发布于河南)
阅读:8
类型:积分资料
积分:10分 (VIP无积分限制)
推荐:升级会员

   点此下载 ==>> 点击下载文档


“百度校园招聘笔试试题_南京PC客户端开发笔试题DOC”第1页图片 图片预览结束,如需查阅完整内容,请下载文档!
文本描述
百度2014校园招聘南京PC客户端开发笔试题
一、问答题:50分
  1、写出new和malloc、delete和free的区别
  从面向对象来说,new/delete和malloc/free的区别是:malloc/free只是单纯的进行内存空间的分配和释放,而使用new/delete时,不仅分配了内存空间,若new/delete的是一个类,还会调用类(经测试,基本类型好像不会进行默认初始化)的构造函数或析构函数。
  简单来说,两者的区别主要有:
  1. malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符,与”+“、”-“、”*“、”/“有一样的地位。
  2. new/delete是可以重载的,而重载之后,就成为了函数。
  3. malloc在申请内存的时候,必须要提供申请的长度,而且返回的指针是void*型,必须要强转成需要的类型。
  4. 当new/delete在类中被重载的时候,可以自定义申请过程,比如记录所申请内存的总长度,以及跟踪每个对象的指针。
  5. new/delete,其实内部也调用了malloc/free。
  两者的共同点有:
  1. 都必须配对使用,防止内存泄露。
  2. 都可用于申请动态内存和释放内存,都是在堆中分配内存。
  3. free和delete可以释放NULL指针。
  2、写两个继承类,解释虚表指针和虚表的作用
  每一个类都有虚表。
  虚表可以继承,如果子类没有重写虚函数,那么子类虚表中仍然会有该函数的地址,只不过这个地址指向的是基类的虚函数实现。如果基类有3个虚函数,那么基类的虚表中就有三项(虚函数地址),派生类也会有虚表,至少有三项,如果重写了相应的虚函数,那么虚表中的地址就会改变,指向自身的虚函数实现。如果派生类有自己的虚函数,那么虚表中就会添加该项。
  派生类的虚表中虚函数地址的排列顺序和基类的虚表中虚函数地址排列顺序相同。
  3、写出static的用法和作用
  static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。函数内部定义的变量,在程序执行到它的定义处时,编译器为它在
  栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至
  下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的
  访问范围(使得在此函数中定义的变量,不仅仅受此函数控制)。 需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类的封装
  性,即要求此成员隐藏在类的内部,对外不可见。
  4、写出计算机的存储器层次,及原因
  以处理器为中心,计算机系统的存储依次为寄存器、高速缓存、主存储器、磁盘缓