今天去博彦面试,微软外包的一个项目。总结一下:
1. 在一个对象的构造函数中抛出一个异常,会怎样?
在使用new操作符,实例化一个对象时,出现异常,new会抛出该异常。
2.在汇编级别,解释调用一个函数所做的事情:
EBP是"基址指针"(BASE POINTER), 它最经常被用作高级语言函数调用的"框架指针"(frame pointer). 在破解的时候,经常可以看见一个标准的函数起始代码:
push ebp ;保存当前ebp
mov ebp,esp ;EBP设为当前堆栈指针
sub esp, xxx ;预留xxx字节给函数临时变量.
...
这样一来,EBP 构成了该函数的一个框架, 在EBP上方分别是原来的EBP, 返回地址和参数. EBP下方则是临时变量. 函数返回时作 mov esp,ebp/pop ebp/ret 即可.
3. COM基础
4. 算法
快排,冒泡排序,二分查找
5. 设计模式
单实例,命令模式,装饰模式,模板模式,观察者模式,适配器模式
6. 面向对象多态的机制,虚函数表!