Shopee一面问题:
1.自我介绍;
2.简述C++ 11版本的智能指针;
3.简述C++析构函数;
4.TCP/IP协议都有哪些?TCP4次挥手的流程;
5.cookie和session各自的含义和区别;
6.http协议的5种状态码及其对应的信息;
7.进程和线程的区别;
8.手撕代码:用两个栈实现队列的入队和出队功能,并利用main测试功能;
9.哈希函数的结构;哈希冲突是什么;怎么解决哈希冲突。
答案整理:
1.自我介绍:略。
2.C++11的智能指针:
智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象。当栈对象的生命周期结束后,会在析构函数中释放掉申请的内存,从而防止内存泄露。C++11中最常用的智能指针类型为shared_ptr。智能指针的作用是管理一个指针。
3.C++析构函数:
类的构造函数是类的一种特殊成员函数,它会在每次创建类的新对象时执行。构造函数的名称与类的名称完全相同的,并且不会返回任何类型,也不会返回void。构造函数可用于为某些成员变量设置初始值。
类的析构函数是类的一种特殊成员函数,它会在每次删除所创建的对象时执行。析构函数的名