招银网络C++二面

1. 项目,怎么做的,用了什么方法,要把他讲明白
2. 优先级队列和队列有什么区别
优先队列 priority_queue<Type, Container, Functional>;Type 就是数据类型,Container 就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector),Functional 就是比较的方式,要用自定义的数据类型时才需要传入这三个参数;使用基本数据类型时,只需要传入数据类型, 默认是大顶堆(降序)
queue<int> q; 先进先出,不排序
3. 怎么学的c++
自学,看视频,看书
4. 看了什么书
5. 哪些容器是不能用迭代器访问的
都可以,答错了,stack和queue不支持迭代器访问。
6. 哪些运算符不能重载,为什么
不能重载的运算符有5个: 1、. (成员访问运算符) 2、.* (成员指针访问运算符) 3、:: (域运算符) 4、sizeof (长度运算符) 5、?: (条件运算符)
“.”运算符的含义是引用对象成员,然而被重载后就不能保证了,导致运算符意义的混淆
”::"运算符只是在编译的时候域解析,而没有运算参与。根据重载的规则,如果重载该运算符,就赋予了新的语义,可能会出现混淆。
?: 运算符的含义是执行语句1和语句2中的一个,假设重载了,就不可以保证执行一个还是两个,还是都没执行,该运算符的跳转性质就不复存在了。所以,“?:”不能被重载。
sizeof不能被重载的原因主要是内部许多指针都依赖sizeof。
.*引用指向类成员的指针
7. 虚函数能做构造函数吗

不能,因为对象中的虚函数表指针是在构造函数初始化列表阶段才初始化的。

C++对象的构建分为两步,首先分配一块内存,其次调用它的构造函数。这时如果它的构造函数是虚函数,那就要通过对象中的虚函数表指针来调用,而这个虚函数表是在构造函数初始化列表阶段才初始化的。

8. 写一个dll动态链接库
gcc *.c -shared -fPIC -o libtest.so
gcc -fpic -c 文件.c //生成.o文件  fpic 与地址无关的偏移量
gcc -shared 一系列.o文件 -o libxx.so

9. 用过哪些设计者模式,怎么用的
观察者模式,策略模式
10. 用过哪种数据库
11. c++是怎么捕获异常的
throw表达式异常检测,try语句块处理异常
12. 怎么捕获所有异常
使用省略号(...)作为异常声明,可以与任何异常类型进行匹配


13. 报文怎么判断是否完整
检错编码:奇偶校验码,循环冗余码CRC;
纠错编码:海明码:发现双比特错,纠正单比特错;确定校验码位数r——确定校验码和数据的位置——求出校验码的值——检错并纠错(所有校验位异或为0)


#招银网络科技校招##面经##招银网络#
全部评论
楼主第五题的stack和queue也可以用迭代器访问吗?
1 回复
分享
发布于 2021-09-17 09:32
二面没撕代码吗
点赞 回复
分享
发布于 2021-09-17 21:00
OPPO
校招火热招聘中
官网直投

相关推荐

3 12 评论
分享
牛客网
牛客企业服务