电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

2024年C++面试宝典版VIP免费

2024年C++面试宝典版_第1页
1/77
2024年C++面试宝典版_第2页
2/77
2024年C++面试宝典版_第3页
3/77
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[]会调用每一种组员的析构函数。在MoreEffectiveC++中有更为详细的解释:“当delete操作符用于数组时,它为每个数组元素调用析构函数,然后调用operatordelete来释放内存。”delete与New配套,delete[]与new[]配套MemTest*mTest1=newMemTest[10];MemTest*mTest2=newMemTest;int*pInt1=newint[10];int*pInt2=newint;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++的共同点?不一样之处?C是面向过程的语言,C++是面向对象,不过不全是。JAVA是纯面向对象在语言层面上,C++和JAVA都基本同样,只是JAVA语言去掉了指针,多继承等轻易出错的东东.目前的JAVA不单纯的是指语言,它是一种开发平台的通称,Java的通用性好,可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了。开发的效率高。生成的机器码效率没有汇编和C的高。4.继承的优缺陷。类继承是在编译时刻静态定义的,且可直接使用,类继承可以较以便地变化父类的实现。不过类继承也有某些局限性之处。首先,由于继承在编译时刻就定义了,因此无法在运行时刻变化从父类继承的实现。更糟的是,父类一般至少定义了子类的部分行为,父类的任何变化都也许影响子类的行为。假如继承下来的实现不适合处理新的问题,则父类必须重写或被其他更适合的类替代。这种依赖关系限制了灵活性并最终限制了复用性。(待补充)5.C++有哪些性质(面向对象特点)封装,继承和多态。在面向对象程序设计语言中,封装是运用可重用成分构造软件系统的特性,它不仅支持系统的可重用性,并且尚有助于提高系统的可扩充性;消息传递可以实现发送一种通用的消息而调用不一样的措施;封装是实现信息隐蔽的一种技术,其目的是使类的定义和实现分离。6.子类析构时要调用父类的析构函数吗?析构函数调用的次序是先派生类的析构后基类的析构,也就是说在基类的的析构调用的时候,派生类的信息已经所有销毁了定义一种对象时先调用基类的构造函数、然后调用派生类的构造函数;析构的时候恰好相反:先调用派生类的析构函数、然后调用基类的析构函数;JAVA无析构函数深拷贝和浅拷贝7.多态,虚函数,纯虚函数多态:是对于不一样对象接受相似消息时产生不一样的动作。C++的多态性详细体目前运行和编译两个方面:在程序运行时的多态性通过继承和虚函数来体现;在程序编译时多态性体目前函数和运算符的重载上虚函数:在基类中冠以关键字virtual的组员函数。它提供了一种接口界面。容许在派生类中对基类的虚函数重新定义。纯虚函数的作用:在基类中为其派生类保留一种函数的名字,以便派生类根据需要对它进行定义。作为接口而存在纯虚函数不具有函数的功能,一般不能直接被调用。从基类继承来的纯虚函数,在派生类中仍是虚函数。假如一种类中至少有一种纯虚函数,那么这个类被称为抽象类(abstractclass)...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

2024年C++面试宝典版

您可能关注的文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部