网易互娱实习面筋

1. 拷贝构造函数

自己定义拷贝构造函数,例如可能涉及到深拷贝浅拷贝的问题,初始化时候可以匹配到拷贝构造函数,没有设置系统会产生一个默认的拷贝构造函数

2. 深拷贝、浅拷贝

深拷贝,及拷贝内存的数据,
浅拷贝,拷贝指针,或者是地址

3. 智能指针

每一个对象维护一个指针的计数器,赋值拷贝这些计数器会增加,当计数器减少到0的时候,会调用析构函数析构掉这个对象。

4. extern c

不同源文件中,使用同一个变量

5. 说说知道的STL容器

vector,list,queue,map,set,unordermap

6. map底层实现

红黑树实现,红黑树的每一个节点都是一个键值对,红黑树是有序的,map是有序的。

7. static作用

静态成员,在作用域类不会被销毁

8. 虚函数,构造函数、析构函数能否为虚函数,为什么

虚函数时为了面向对象里面的多态

构造函数不能为虚函数,因为先构造才有虚函数表,第二点如果定义虚函数,子类覆盖的话,构造的时候子类是一个未初始化的状态

析构函数可以定义,因为析构从子类的对象开始析构,一直到父类。

9. 源文件到可执行文件的过程

源文件,经过预编译,编译,汇编,链接
预编译:处理源代码中的预处理指令,例如宏定义这些替换操作,不进行安全性的检查
编译:编译过程所进行的是对预处理后的文件进行语法分析,词法分析,语义分析,符号汇总,然后生成汇编代码。
汇编:将汇编代码转成二进制文件
链接:其实就是将二进制文件链接称为一个可执行的指令。链接所完成的任务是合并段表,然后把符号表合并并且对符号表进行重定位

10. 动态库和静态库

静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序可以共用,节省内存。

11. Linux io模型

阻塞,非阻塞,同步,异步

12. epoll触发类型

水平触发,不断的通知上层
边缘触发,只通知上层一次

13. timewait产生的原因

保证最后一个挥手,服务器端没收到,可以在这个时间内重传数据

14. TCP流量控制

滑动窗口

15. 游戏中的用户排名怎么实现

top k

16. 1-n随机打乱

洗牌算法

猜你喜欢

转载自blog.csdn.net/u012414189/article/details/84580191