2021年C++语言面试宝典整理.docVIP

  • 6
  • 0
  • 约3.52万字
  • 约 39页
  • 2020-11-13 发布于江苏
  • 举报
1.new、delete、malloc、free关系 delete会调用对象析构函数,和new对应free只会释放内存,new调用结构函数。malloc和free是C++/C语言标准库函数,new/delete是C++运算符。它们全部可用于申请动态内存和释放内存。对于非内部数据类型对象而言,光用maloc/free无法满足动态对象要求。对象在创建同时要自动实施结构函数,对象在消亡之前要自动实施析构函数。因为malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把实施结构函数和析构函数任务强加于malloc/free。所以C++语言需要一个能完成动态内存分配和初始化工作运算符new,和一个能完成清理和释放内存工作运算符delete。注意new/delete不是库函数。 2.delete和 delete []区分?delete只会调用一次析构函数,而delete[]会调用每一个组员析构函数。在More Effective C++中有更为具体解释:“当delete操作符用于数组时,它为每个数组元素调用析构函数,然后调用operatordelete来释放内存。”delete和New配套,delete []和new []配套 MemTest*mTest1=newMemTest[10];MemTest*mTest2=newMemTest;int*pInt1=newint[10]; int*pInt2=new int; delete[]pInt1; //-1- delete[]pInt2; //-2- delete[]mTest1;//-3- delete[]mTest2;//-4- 在-4-处报错。这就说明:对于内建简单数据类型,delete和delete[]功效是相同。对于自定义复杂数据类型,delete和delete[]不能互用。delete[]删除一个数组,delete删除一个指针简单来说,用new分配内存用delete删除用new[]分配内存用delete[]删除delete[]会调用数组元素析构函数。内部数据类型没有析构函数,所以问题不大。假如你在用delete时没用括号,delete就会认为指向是单个对象,不然,它就会认为指向是一个数组。 3.C C++ JAVA共同点,不一样之处? 4.继承优缺点。类继承是在编译时刻静态定义,且可直接使用,类继承能够较方便地改变父类实现。不过类继承也有部分不足之处。首先,因为继承在编译时刻就定义了,所以无法在运行时刻改变从父类继承实现。更糟是,父类通常最少定义了子类部分行为,父类任何改变全部可能影响子类行为。假如继承下来实现不适合处理新问题,则父类必需重写或被其它更适合类替换。这种依靠关系限制了灵活性并最终限制了复用性。(待补充) 5.C++有哪些性质(面向对象特点)?封装,继承和多态。在面向对象程序设计语言中,封装是利用可重用成份结构软件系统特征,它不仅支持系统可重用性,而且还有利于提升系统可扩充性;消息传输能够实现发送一个通用消息而调用不一样方法;封装是实现信息隐蔽一个技术,其目标是使类定义和实现分离。 6.子类析构时要调用父类析构函数吗?析构函数调用次序是先派生类析构后基类析构,也就是说在基类析构调用时候,派生类信息已经全部销毁了。定义一个对象时先调用基类结构函数、然后调用派生类结构函数;析构时候恰好相反:先调用派生类析构函数、然后调用基类析构函数JAVA无析构函数深拷贝和浅拷贝 7.多态,虚函数,纯虚函数 8.求下面函数返回值(微软) int func(x) { ??? int countx = 0; ??? while(x) ??? { ????????? countx ++; ????????? x = x(x-1); ???? } ??? return countx; }? 假定x = 9999。 答案:8。思绪:将x转化为2进制,看含有1个数。 9.什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量“别名”(alias),对引用操作和对变量直接操作效果完全相同。申明一个引用时候,切记要对其进行初始化。引用申明完成后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其它变量名别名。申明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名一部分名,它本身不是一个数据类型,所以引用本身不占存放单元,系统也不给引用分配存放单元。不能建立数组引用。 10.将“引用”作为函数参数有哪些特点? (1)传输引用给函数和传输指针效果是一样。这时,被调函数形参就成为原来主调函数中实参变量或对象一部分名来使用,所以在被调函数中对形参变量操作就是对其对应目标对象(在主调函数中)操

文档评论(0)

1亿VIP精品文档

相关文档