下午课刚上完,我收到了HR的通知,得知没有通过面试,这是一家在合肥的软件公司。挺不爽的,我觉得主要是因为经验少。还是谈谈面试官问我的两个技术问题吧,我应聘的是C++软件开发工程师。
1、STL中的map是线程安全的吗?
我的回答:标准中没有规定,但是基本上STL都实现了,是线程安全的。
其实是大部分版本的STL都不是线程安全的。我前几天刚好查了这个问题,参见:
http://stackoverflow.com/questions/7455982/is-stl-vector-concurrent-read-thread-safe
我只看到回答者写的一个醒目的Yes,我就说是线程安全的,其实是针对提问者用的那款编译器。
2、类的大小:
class A { A(); ~A(); int m_nSize; }; class B : public A { };
问sizeof(B)是多少?
我的回答:4
他再在A中加了虚函数:
virtual int foo();
我的回答:与虚函数表有关,没有深究过。
其实加了虚函数,内含一个函数指针,答案应该是8。
上面的答案都是在网上找的,只知其一,不知其二,还是应该好好看技术书,网上许多东西不靠谱。
最后他向我推荐了几本书:《C++编程思想》,《Windows核心编程》,还有本Linux的书忘了什么名字。
欢迎大家点评指教。