首页 > 2020.8.18宁波银行C++
头像
MrLee201909191701599
编辑于 2020-08-18 16:42
+ 关注

2020.8.18宁波银行C++

自我介绍
一、struct和class区别?
总的来说,struct 更适合看成是一个数据结构的实现体,class 更适合看成是一个对象的实现体。
最本质的一个区别就是默认的访问控制
1. 默认的继承访问权限。struct 是 public 的,class 是 private 的。
2. struct 作为数据结构的实现体,它默认的数据访问控制是 public 的,而 class 作为对象的实现体,它默认的成员变量访问控制是 private 的。
二、多态是什么?
多态,即多种状态(形态)。简单来说,我们可以将多态定义为消息以多种形式显示的能力。多态是以封装和继承为基础的。
C++ 多态分类及实现:
重载多态(Ad-hoc Polymorphism,编译期):函数重载、运算符重载
子类型多态(Subtype Polymorphism,运行期):虚函数
参数多态性(Parametric Polymorphism,编译期):类模板、函数模板
强制多态(Coercion Polymorphism,编译期/运行期):基本类型转换、自定义类型转换
三、malloc free和new delete区别?
new能自动计算需要分配的内存空间,而malloc需要手工计算字节数。
new与delete直接带具体类型的指针,malloc和free返回void类型的指针。
new类型是安全的,而malloc不是。例如int *p = new float[2];就会报错;而int p =malloc( 2 sizeof(int))编译时编译器就无法指出错误来。
new一般分为两步:new操作和构造。new操作对应与malloc,但new操作可以重载,可以自定义内存分配策略,不做内存分配,甚至分配到非内存设备上,而malloc不行。
new调用构造函数,malloc不能;delete调用析构函数,而free不能。
malloc/free需要库文件stdlib.h的支持,new/delete则不需要。
四、C++中定义变量比C语言优势?
在C语言中在添加代码处定义变量程序就会出错,定义变量必须放在函数的最前面,C++没有这个限制。
五、指针和引用区别?
指针存储的是数据的地址。引用可以理解成变量的别名。定义一个引用的时候,程序把该引用和它的初始值绑定在一起。也可以把引用看做是常量指针,它只能绑定初始化的对象上。


更多模拟面试

全部评论

(2) 回帖
加载中...
话题 回帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐