> 文章列表 > 网易C++实习一面

网易C++实习一面

网易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吗?