【精选干货】面试了无数公司之后总结的最有用的面试题

2021-12-23 12:25

  今天小编为大家整理了一份C++的面试题,希望可以帮助大家在面试的时候,能够用到。

C++面试题精选

  1、new、delete、malloc、free之间的关系。

  new/delete、malloc/free都是动态分配内存的方式。

  1)malloc严格指定开放空间的大小,而new只需要对象名。

  当new为对象分配空间时,调用对象的构造函数,delete调用对象的析构函数。

  既然有了malloc/free,为什么C++还需要new/delete?

  由于malloc/free是库函数而不是操作符,执行构造函数和析构函数的功能不能强加于malloc/free。

  2、delete和delete[]的区别。

  delete只调用一次析构函数,delete[]调用每个成员的析构函数。

  用delete释放new分配的内存,用delete[]释放new[]分配的内存。

  3、STL库用过吗?常见的STL容器有哪些?有多少算法用过?

  STL包括容器和算法两部分。

  容器是存储数据的地方,如array和vector,分为序列容器和关联容器两类。

  序列容器中的元素不一定有序,但可以排序,如vector、list、queue、stack、heap、priority-queue、slist等。

  关联容器,内部结构为平衡二叉树,每个元素都有一个键值和一个实值,如map、set、hashtable、hash_set等。

  算法包括排序、复制等,以及每个容器的具体算法。

  迭代器是STL的精髓。迭代器提供了一种方法,使其能够按顺序访问容器中包含的各种元素,但不需要暴露容器的内部结构。它将容器和算法分开,使它们独立设计。

  4、const知道吗?解释它的功能。

  const修饰类成员变量表示常量不能修改。

  const修改类成员函数表示该函数不会修改类中的数据成员,也不会调用其他非const成员函数。

  5、现虚函数?

  每个含有虚函数的类至少有一个相应的虚函数表,其中包含所有对应虚函数的函数指针(地址),

  类的示例对象不包括虚函数表,只包括虚指针;

  派生类生成兼容基类的虚函数表。

  以上就是小编为大家整理发布的“【精选干货】面试了无数公司之后总结的最有用的面试题”一文,更多相关内容尽在开课吧广场C++教程频道。

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享
全部评论快来秀出你的观点
登录 后可发表观点…
发表
暂无评论,快来抢沙发!
算法刷题核心能力提升营