恒生群面题目


1、Windows消息系统:


2、MFC(Microsoft Foundation Classes,微软基础类库):是微软公司实现的一个c++类库,主要封装了大部分的windows API(Application Programming Interface)函数,并且包含一个应用程序框架,以减少应用程序开发人员工作量。

3、C++多线程

4、java线程的几种状态


5、Float型数据与0是否相等:float型: 占4字节,7位有效数字;double型:占8字节,15~16位有效数字。浮点数的表示是不精确的,float和double都不能保证可以把所有实数都准确的保存在计算机中,所以不能直接比较两个数是否完全相等。一般都是在允许的某个范围内认为某个个浮点数相等,如有两个浮点数a、b,允许的误差范围为1e-6,则abs(a-b) <= 1e-6,即可认为a和b相等。

6、C++特征(分别是什么并解释):

继承:

被继承的是父类(基类),继承出来的类是子类(派生类),子类拥有父类的所有的特性。

继承方式有公有继承、私有继承,保护继承。默认是私有继承


公有继承中父类的公有和保护成员在子类中不变,私有的在子类中不可访问。

私有继承中父类的公有和保护成员在子类中变为私有,但私有的在子类中不可访问。

保护继承中父类的公有和保护成员在子类中变为保护,但私有的在子类中不可访问。

c++语言允许单继承和多继承,


优点:继承减少了重复的代码、继承是多态的前提、继承增加了类的耦合性;

缺点:继承在编译时刻就定义了,无法在运行时刻改变父类继承的实现;父类通常至少定义了子类的部分行为,父类的改变都可能影响子类的行为;如果继承下来的子类不适合解决新问题,父类必须重写或替换,那么这种依赖关系就限制了灵活性,最终限制了复用性。

虚继承:为了解决多重继承中的二义性问题,它维护了一张虚基类表。


多态:

多态性是指对不同类的对象发出相同的消息将会有不同的实现

C++有两种多态,称为动多态(运行期多态)和静多态(编译器多态),静多态主要是通过模板来实现,而动多态是通过虚函数来实现的。即在基类中存在虚函数(一般为纯虚函数)子类通过重载这些接口,使用基类的指针或者引用指向子类的对象,就可以调用子类对应的函数,动多态的函数调用机制是执行器期才能确定的,所以他是动态的。


优点:大大提高了代码的可复用性;提高了了代码的可维护性,可扩充性;

缺点:易读性比较不好,调试比较困难;模板只能定义在头文件中,当工程大了之后,编译时间十分的变态;

封装:

隐藏类的属性和实现细节,仅仅对外提供接口,

封装性实际上是由编译器去识别关键字public、private和protected来实现的,体现在类的成员可以有公有成员(public),私有成员(private),保护成员(protected)。私有成员是在封装体内被隐藏的部分,只有类体内说明的函数(类的成员函数)才可以访问私有成员,而在类体外的函数时不能访问的,公有成员是封装体与外界的一个接口,类体外的函数可以访问公有成员,保护成员是只有该类的成员函数和该类的派生类才可以访问的。


优点:隔离变化;便于使用;提高重用性;提高安全性

缺点:如果封装太多,影响效率;使用者不能知道代码具体实现。

7、Switch后面可以接什么类型的数据:int、 short、 char 或者 byte,还有enum。。

8、栈的使用场景:数制的转换、括号的匹配

队列的使用场景:树的层次遍历

9、Static修饰全局和局部变量

10、什么情况下堆栈会溢出

1.函数调用层次太深。函数递归调用时,系统要在栈中不断保存函数调用时的现场和产生的变量,如果递归调用太深,就会造成栈溢出,这时递归无法返回。再有,当函数调用层次过深时也可能导致栈无法容纳这些调用的返回地址而造成栈溢出。

2.动态申请空间使用之后没有释放。由于C语言中没有垃圾资源自动回收机制,因此,需要程序主动释放已经不再使用的动态地址空间。申请的动态空间使用的是堆空间,动态空间使用不会造成堆溢出。

3.数组访问越界。C语言没有提供数组下标越界检查,如果在程序中出现数组下标访问超出数组范围,在运行过程中可能会内存访问错误。

4.指针非法访问。指针保存了一个非法的地址,通过这样的指针访问所指向的地址时会产生内存访问错误

11、类的声明和定义为什么要分开

Stl:是“Standard Template Library”的缩写,中文译为“标准模板库”。STL是C++标准库的一部分

容器:容器是用来管理某一类对象的集合。C++提供了各种不同类型的容器,比如deque、list、vector、map等。

Sizeof:数据所占内存的大小,字符串要加上结束符


11、视图(定义及相关东西):视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

CREATE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition;

因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合对视图的操作与对标的操作一样,可以对其进行查询、修改和删除。当对通过视图看到的数据进行修改时,相应的基本表中的数据也会发生变化;同时,若是基本表的数据发生变化,则这种变化也会自动地反映在视图上。视图可以被嵌套,一个视图可以嵌套另一个视图。创建视图时,视图的名字不能和表名或其他视图名重复,视图名称具有唯一性。视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用SQL语句来重建数据。


12、索引(定义及相关东西):索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

13、TCP与UDP的区别:TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于广播和细节控制交给应用的通信传输。

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议:也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立,其中的过程非常复杂,


#恒生公司##面经##校招##C++工程师#
全部评论
感谢楼主总结~Mark....
点赞 回复
分享
发布于 2019-10-05 00:46
老哥面的是java岗吗,怎么C++,java,MFC都有?
点赞 回复
分享
发布于 2019-10-05 21:48
联易融
校招火热招聘中
官网直投
插个眼
点赞 回复
分享
发布于 2019-10-09 18:38
mfc这么老的东西还问啊。。。
点赞 回复
分享
发布于 2019-10-09 20:37
老哥,恒生有前端的吗
点赞 回复
分享
发布于 2019-10-12 15:31

相关推荐

8 79 评论
分享
牛客网
牛客企业服务