1>比较一下C++中static_cast和dynamic_cast的区别。
解答:dynamic_cast考虑到继承关系的限制,static_cast则进行强制类型转换。
2>struct 和class的区别。
解答:struct中的成员变量和成员函数默认访问权限是public,而class则为private。
3>当一个类A中没有生命任何成员变量和成员函数,那么这时的sizeof(A)的值,是否为零。为什么。
解答:肯定不为零,如果占用的内存为零,那么建立一个Class A[n]的数组,数组之间的对象就无法区别。
4>在8086汇编下,逻辑地址和物理地址是如何装换的?
解答:通用寄存器给出的地址,是段内偏移地址,相应段寄存器地址*10H+通用寄存器内存地址就得到想要的物理地址。
5>C++的多态实现方式。
解答:一是函数重载,运算符重载。二就是虚函数的应用。
6>const 与#define相比优点。
解答:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对#define只进行简单的替换。有些集成工具可以对const常量进行调试,但会对宏常量进行调试。
7>类成员函数的重载、覆盖和隐藏的区别。
解答:
成员函数被重载的特征:相同的函数名、相同的范围(在同一个类内)、参数不同(参数的个数或者类型)、virtual关键字可有可无
覆盖指派生类函数覆盖基类函数,特征:不同范围(基类和派生类)、函数名字相同、参数相同、基类必须有virtual关键字
隐藏是指派生类的函数屏蔽了基类同名函数,特征:如果派生类的函数与基类同名,但是参数不同,基类不论是否有virtual关键字,基类的同名函数都被隐藏。如果函数同名,参数也相同,基类没有virtual关键字,也隐藏基类的函数。
8>mian主函数执行完毕后,是否还有可能再执行一段代码?
解答:可以再执行一段代码。用_onexit注册一个函数即可执行。
9>不能做switch的参数类型?
解答:实型。
10>