1.在类的普通成员函数中调用虚函数,情况是怎么样的?(对象、引用、指针)多态,事实上,这是TemplateMethod模式的关键2.关于成员变量初始化顺序,几个有依赖关系的成员变量要初始化,让写出构造函数。在初始化列表中,成员变量的初始化顺序是其在类中声明顺序,而非列表中的顺序。4.写个is-a和has-a。ClassPet{};ClassDog:publicPet{};ClassBoy{Pet*m_pPet;};5.structvs.class.1)默认访问属性,struct为public,class为private2)默认继承属性,struct为public,class为private3)class可以用来声明模板参数,而struct不能7.stl里面vector的实现(内部空间的申请与分配)Vector中文名字是动态数组,其内部数据结构就是一个数组,但是在数组元素不够用的时候,就要动态的重新分配,一般是现在大小的两倍,然后把原数组的内容拷贝过去。所以,在一般情况下,其访问速度同一般数组,只有在重新分配发生时,其性能才会下降9.为什么要用struct成员的默认属性不同,用struct的话,主要是作为数据的集合。10.怎样使一个class不能被实例化1,构造函数私有化,2,抽象类11.私有继承和public继承的区别。私有继承:只继承实现,不继承实现has-a公有继承:继承接口与实现is-a12.void*p的问题不能++13.引用和指针的区别与联系。引用是否可以更改联系:支持多态,可以用来引用同一对象区别:指针可以为NULL,引用不可以;指针可以重赋值,引用不可以;14.windows编程基础,线程与进程的区别程序是一系列静态的指令序列进程是程序的一次动态执行,进程其实是一个资源的容器包括一个私有的虚拟地址空间,一些初始的代码与数据,一些系统资源的句柄等线程是一个进程中的执行体,一般包括CPU寄存器状态,两个栈(内核模式,用户模式)以及一个TLS(Thread-LocalStorage)等15.什么是com+COM+是COM技术的延伸与发展,它包括了所有COM的基本功能(基于接口的编程模型,基本组件服务),并组合了DCOM(使组件技术延伸到了分布式领域)和MTS-MicrosoftTransactionServer(提供了服务器端的组件管理与配置管理),并新增了一些服务:负载平衡,内存数据库,事件模型,队列服务等,主要用于WindowsDNA(DistributedinterNetApplicationArchitecture)三层结构的中间层。16.简述一下hash算法哈希表的目的是表查询插入修改能够达到O(1)的算法复杂度,通过对key编码来确定其存储地址来实现,当不同的key得到相同的编码时,便需要进行冲突检测与处理,一般方法有除留余数法,线性探测法,平方探测法,这使其无法真正达到O(1)17.一个32位的数据,怎样找到最左边的一个1?如果是在最左位,这个数是负数,否则的话,左移一位,看是否变成负数,这是O(n)的算法,也可以用一个模板去与,并不断改变这个模板O(n/2)的算法:二分方式查找???18.一个4*4的格子,填入1~15然后给个目标状态,怎样去搜索。比如:1236045789101112131415再给出个最终的状态(随便都可以)0表示一个空格,可以移动,有点像拼图;人工智能的教材上用的应该就是这个例子,用A*算法,它既不是广度搜索,也不是深度搜索,而是一种启发式搜索,在进行下一步搜索之前,会用一个估价函数来对后面的节点评分,取评分最优的进行下一步搜索,如果找不到结果,回溯。对于本题,用曼哈顿距离作为评分标准是个不错的选择。19.给你100万个数据,数据的值在0~65535之间用最快的速度排序多关键字基数排序MSD(MOSTSIGNIFICANTDIGITFIRST)2.20.如果我们的一个软件产品,用户回复说:运行速度很慢,你怎么处理?询问其Workflow,用户的硬件环境21.八皇后问题,详述解法(八皇后问题说的是在8*8国际象棋棋盘上,要求在每一行放置一个皇后,且能做到在竖方向,斜方向都没有冲突)回溯法22.kmp快速匹配算法---不算轻松的搞定普通的模式匹配算法,一旦不匹配,模式串右移一位;但是其实根据一直条件,我们可以算出应该向右移几位以避免不必要的比较;算法实现比较曲折23.无向图中两点间最短路问题---伟大的迪杰克斯拉算法假设一共有N个节点,需要一个一维数组Previous[N]来记录前一个节点序号;一个一维数组TotalLength[N]来记录从原点到当前节点最短路径;一个二维数组Weigh...