2022年C++面试题万余字汇总【面试官常问】_c++ 高阶低延迟面试题(1)

1、请你说说 GET 和 POST 的区别?

简述:post采用隐式传参,get采用显示传参。get传输数据有长度的现实,而post没有长度的限制。get常用来获取数据,post常用来提交数据。get请求会被浏览器主动缓存,post请求不会被浏览器主动缓存,可手动设置缓存。get请求只支持url编码,post请求支持多种编码方式(img,text,application等等)

得分点 用法不一样、参数显隐式、参数长度。 标准回答 get主要用来获取数据,而post是提交或修改数据。get有长度限制(2048字节)而post没有。get的参数是显式的,而post是隐式的。加分回答- get主要用来获取数据,post主要用来提交数据。 - get的参数有长度限制,最长2048字节,而post没有限制。 - get的参数会附加在url之 ,以 " ? "分割url和传输数据,多个参数用 "&"连接,而post会把参数放在http请求体中。 - get是明文传输,可以直接通过url看到参数信息,post是放在请求体中,除非用工具才能看到。 - get请求会保存在浏览器历史记录中,也可以保存在web服务器日志中。 - get在浏览器回退时是无害的,而post会再次提交请求。 - get请求会被浏览器主动缓存,而post不会,除非手动设置。 - get请求只能进行url编码,而post支持多种编码方式。 - get请求的参数数据类型只接受ASCII字符,而post没有限制。

2、简述一下 C++ 中的多态?

简述:多态分为静态多态和动态多态。静态多态是在编译期间完成的,编译器会根据实参类型选择合适的函数调用,如果存在就调用,不存在就报错。静态多态有函数重载,运算符重载,泛型编程等。动态多态是根据基类指针或引用指向的对象,来确定调用哪个函数的过程,比如父类指针指向父类对象,则调用父类对象的虚函数;父类指针指向子类对象,则调用子类对象中的虚函数。动态多态的条件,要有继承关系,函数重写,父类指针指向子类对象。动态多态的原理是,当对象中声明了虚函数,就会在类中生成一个虚函数表,这个是有编译器自动生成和维护的。虚函数表中存放虚函数指针,每个对象都会有一个虚指针,虚指针会根据这个对象在对应类中的虚函数表里查找被调用的函数,进行调用。

得分点 静态多态、动态多态、多态的实现原理、虚函数、虚函数表 标准回答 在现实生活中,多态是同一个事物在不同场景下的多种形态。在面向对象中,多态是指通过基类的指针或者引用,在运行时动态调用实际绑定对象函数的行为,与之相对应的编译时绑定函数称为静态绑定。所以多态分为静态多态和动态多态。 1.静态多态 静态多态是编译器在编译期间完成的,编译器会根据实参类型来选择调用合适的函数,如果有合适的函数就调用,没有的话就会发出警告或者报错。静态多态有函数重载、运算符重载、泛型编程等。 2. 动态多态 动态多态是在程序运行时根据基类的引用(指针)指向的对象来确定自己具体该调用哪一个类的虚函数。当父类指针(引用)指向 父类对象时,就调用父类中定义的虚函数;即当父类指针(引用)指向 子类对象时,就调用子类中定义的虚函数。 加分回答 1. 动态多态行为的表现效果为:同样的调用语句在实际运行时有多种不同的表现形态。 2. 实现动态多态的条件: - 要有继承关系 - 要有虚函数重写(被 virtual 声明的函数叫虚函数) - 要有父类指针(父类引用)指向子类对象 3. 动态多态的实现原理 当类中声明虚函数时,编译器会在类中生成一个虚函数表,虚函数表是一个存储类虚函数指针的数据结构, 虚函数表是由编译器自动生成与维护的。virtual 成员函数会被编译器放入虚函数表中,存在虚函数时,每个对象中都有一个指向虚函数表的指针(vptr 指针)。在多态调用时, vptr 指针就会根据这个对象在对应类的虚函数表中查找被调用的函数,从而找到函数的入口地址。

3、说一说进程有多少种状态,如何转换?

在这里插入图片描述

得分点
创建、就绪、执行、阻塞、终止

标准回答

  1. 进程有五种状态:创建、就绪、执行、阻塞、终止:
  • 创建:一个进程启动,首先进入创建状态,需要获取系统资源创建进程管理块(PCB:Process Control Block)完成资源分配。
  • 就绪状态:在创建状态完成之后,进程已经准备好,处于就绪状态,但是还未获得处理器资源,无法运行。
  • 运行状态:获取处理器资源,被系统调度,当具有时间片开始进入运行状态。如果进程的时间片用完了就进入就绪状态。
  • 阻塞状态:在运行状态期间,如果进行了阻塞的操作,此时进程暂时无法操作就进入到了阻塞状态,在这些操作完成后就进入就绪状态。等待再次获取处理器资源,被系统调度,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值