C++后端面试题目(应届)

本文涵盖了C++后端面试中的关键知识点,包括指针与引用的区别、智能指针的类型及其作用、Git命令、内存管理、函数重载与重定义、STL容器、C++11新特性、排序算法、操作系统概念以及数据结构等。重点讨论了智能指针在防止内存泄露中的角色,以及右值引用带来的效率提升。
摘要由CSDN通过智能技术生成

  1. 指针大小:
  2. auto自定义:
  3. 指针和引用的区别##:
  1. 指针有自己的一块空间,而引用只是一个别名;
  2. 指针可以被初始化为NULL,而引用必须被初始化;
  3. 指针在使用中可以指向其它对象,但是引用只能是一个对象的引用,不能被改变;
  4. 指针可以有多级指针(**p),而引用只有一级;
  5. 智能指针:
  6. C++中的四个智能指针: shared_ptr、unique_ptr、weak_ptr、auto_ptr
  7. A:智能指针出现的原因:智能指针的作用就是用来管理一个指针,将普通的指针封装成一个栈对象,当栈对象的生命周期结束之后,会自动调用析构函数释放掉申请的内存空间,从而防止内存泄露。
  8. shared_ptr实现共享式拥有概念。多个智能指针指向相同对象,该对象和其相关资源会在最后一个引用被销毁时被释放。
  9. unique_ptr实现独占式拥有概念,保证同一时间内只有一个智能指针可以指向该对象。
  10. weak_ptr 是一种共享但不拥有对象的智能指针, 它指向一个 shared_ptr 管理的对象。进行该对象的内存管理的是那个强引用的 shared_ptr,weak_ptr只是提供了对管理对象的一个访问手段,它的构造和析构不会引起引用计数的增加或减少。weak_ptr 设计的目的是为协助 shared_ptr工作的,用来解决shared_ptr相互引用时的死锁问题。注意的是我们不能通过weak_ptr直接访问对象的方法,可以通过调用lock函数来获得shared_ptr,再通过shared_ptr去调用对象的方法。
  11. auto_ptr采用所有权模式,C++11中已经抛弃
  12. Git命令:
  13. (ubuntu)文件/文件夹的建立
  14. tar:(ubuntu):
  15. new和delete:delete[]什么时候用,是否必须用,什么时候可以不用:有new无delete后果如何,最坏什么情况
  16. 析构函数:什么时候使用,什
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值