网易C++实习一面
说下C++11新特性
auto有没有效率上的问题?为什么?发生在什么时候?
说下单例模式
什么时候需要加锁,什么时候不需要加锁?
像printf这样的函数,自己本身不修改数据,但是其他人会修改数据,需要加锁吗?
HTTP与TCP的关系?
TCP的特点?
如何解决粘包问题?
HTTP报文的空行的用处?
假如有效载荷里也有很多空行,如何判断HTTP里的那个空行?
让你写一个发送的函数,send(void* data ,size_t len),如何把系统调用write封装成成应用层send?
下面程序的运行结果是 A.编译报错 B.运行崩溃 C.正常运行?为什么?
class A { public: void Show() { cout << "Show()" << endl; } private: int _a; }; int main() { A* p = nullptr; p->Show(); }
编译是检查不出来空指针的问题的,空指针不是语法错误,空指针是运行时的错误
分析:
1. p虽然是空指针,但是p调用成员函数不会编译错误,因为空指针不是语法错误,编译器检查不出来
2.p虽然是空指针,但是p调用成员函数不会出现空指针访问。因为成员函数没有存在对象里面
3.这里会把p作为实参传给隐藏的this指针。传空指针不报错,空指针只要不去解引用是不会报错的。这道题,并没有解引用this
用过boost库中的asio吗?