c++面试题目

1.重载:两个函数名相同,但是参数列表(个数,类型)不同,
重写:子类继承父类,并且重写父类的虚函数

2.const修饰成员函数:表明函数调用不会对对象做出任何更改,

3两个函数,参数一个不带const,一个带,会有问题吗?
不会,这是函数重载,
4.低精度变量给高精度变量赋值会发生隐式类型转换,

**5.**类型转换:
reinterpret_cast:
dynamic_cast:
const_cast:
static_cast:

6.c++调用c函数需要extern C,因为C语言没有函数重载

7.map底层红黑树,unordered_map底层是哈希表,
list是双向链表

8.c++源文件从文本到可执行文件经历的过程:

  1. 预处理
  2. 编译
  3. 汇编
  4. 链接

9.vector和list和map的底层实现和时间复杂度
在这里插入图片描述此图片是转载自https://blog.csdn.net/weixin_40244153/article/details/94620126 ·

10.const

  1. 修饰变量,说明该变量不可以被改变
  2. 修饰指针,分为常量指针:指针指向的是常量
    指针常量:指针指向的地址不改变
  3. 修饰成员函数:成员函数不能被修改,只能在初始化列表中赋值,
  4. a. const成员函数不被允许修改它所在对象的任何一个数据成员。
    b. const成员函数能够访问对象的const成员,而其他成员函数不可以。
  5. 即const类对象只能调用const成员函数,非const对象可以访问任意的成员函数
  6. const修饰的对象,该对象的任何非const成员函数都不能被调用,因为任何非const成员函数会有修改成员变量的企图。

11.sizeof对数组,得到整个数组所占空间大小,
对指针,得到指针本身空间大小。

12

  1. 封装:隐藏实现细节,使得代码模块化,对数据的访问只能通过已经定义的界面。

  2. 继承:是指可以使用现有类的所有功能,并且在无需重新编写原来的 类的情况下对这些功能进行扩展。

  3. 多态:
    静态多态:通过函数重载和模板实现
    动态多态:通过虚函数实现

实现多态有两种方式。
覆盖:子类重新定义父类的虚函数
重载:允许存在多个重名函数,而这些参数的参数表不同(参数个数或参数类型不同)

13、 虚函数与纯虚函数的区别
虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstract class),不能生成对象。因为抽象类包含纯虚函数,纯虚函数在基类(base class)只有声明而没有定义,所以虚函数表不健全,不能实例化。在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。
虚函数可以被直接使用,也可以被子类(sub class)重载以后以多态的形式调用,而纯虚函数必须在子类(sub class)中实现该函数才可以使用,因为纯虚函数在基类(base class)只有声明而没有定义。
虚函数的定义形式:virtual{method body};
纯虚函数的定义形式:virtual {} = 0;
虚函数表的创建和初始化在构造函数中完成。

14、若指针px为空,则px的值为0.

15、进制:
二进制:0b(0:零)
八进制:0
十六进制:0x

16
TCP和UDP的区别
TCP 是面向连接的,UDP 是面向无连接的
UDP程序结构较简单
TCP 是面向字节流的,UDP 是基于数据报的
TCP 保证数据正确性,UDP 可能丢包
TCP 保证数据顺序,UDP 不保证

17、 tcp如何保证可靠传输?

  1. 校验和
  2. 序列号
  3. 确认应答
  4. 超时重传
  5. 连接管理
  6. 流量控制
  7. 拥塞控制

18、 指针函数和函数指针?
指针函数“本质是一个函数,函数返回类型是某一类型的指针。
函数指针:本质是一个指针,指针指向函数。

19、TCP和UDP的区别
TCP 是面向连接的,UDP 是面向无连接的
TCP 是面向字节流的,
TCP 无丢失,不重复,无差错,按序到达,UDP尽最大努力交付
TCP 只能一对一,UDP可以一对一,一对多,多对一,多对多。
TCP首部开销大,20字节.UDP首部开销小,8字节

20、malloc和new的区别
malloc开辟内存失败返回null,new开辟内存失败返回异常。
malloc是函数,new是运算符
malloc要指定内存大小,new不用指定

20、浏览器访问网页的过程

  1. DNS域名解析
  2. 建立tcp连接
  3. 使用http协议向服务器发送请求
  4. 服务器处理请求并返回http响应报文
  5. 浏览器解析渲染界面
  6. 四次挥手释放TCP连接

21、堆排序与快速排序的比较
https://blog.csdn.net/qq_34768115/article/details/85265140

22.进程间通讯方式

  1. 管道
  2. 命名管道
  3. 消息队列
  4. 共享内存
  5. 信号量
  6. 套接字socket
  7. 信号

23.数据库:主键,外键,索引
数据库中的主键指的是能够唯一标识一条记录的属性或属性组,外键指的是另一张表中的主键起到与其他表建立联系的作用,索引是用来快速查找具有特定值的记录。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值