没有合适的资源?快使用搜索试试~ 我知道了~
招银网络面试
需积分: 32 94 下载量 134 浏览量
2017-11-08
15:00:25
上传
评论 7
收藏 145KB DOCX 举报
温馨提示
试读
10页
这是今年秋招应聘招银网络面试所准备的问题,对C++、数据库、数据结构等问题进行了总结,总共10页,结果也拿到了招银offer,希望对后来者有用。
资源推荐
资源详情
资源评论
1 拷贝构造函数为什么使用引用实现?
答 :如果不采用 引用 实 现 , 即 采用 传 值 调 用 ,对 于 拷 贝 构 造函 数 , 将 是 以下 形 式 ,
MyClass(const MyClass rhl);对于 MyClass a=b 这种形式,将会调用 a.MyClass(b);所以这
时候又会去调用 const MyClass rhl=b,即等价于 rhl.MyClass(b);这个时候还会去调用拷
贝构造函数。所以,如果不采用引用会导致无限递归调用。
2 静态成员函数不能声明为虚函数。
答:静态成员函数编译时绑定,虚函数运行时绑定。静态成员函数是属于类的,而不是属
于某一对象,不会传入隐式 this 指针;虚函数是特殊的成员函数,用来实现运行时多态,
没有 this 指针无法实现虚函数调用。
3 new 和 malloc 的区别
New 返回指定类型的指针,并可以自动计算所需大小;而 malloc 则必须由程序员计算字节
数,并且在返回后强制转化为实际类型的指针。
Malloc 只管分配内存,并不能对内存进行初始化,所以得到的一片新内存中,里面的值将
是随机的,而 new 在分配内存的时候可以进行初始化。
除了分配以及最后释放以外,其余的操作基本一样。
Malloc 和 free 成对使用,new 和 delete 成对使用;malloc 和 free 是 C++/c 里面的库函数,
而 new 和 delete 是 C++里面的运算符。
对非内部数据类型而言,malloc 无法满足要求。
C++程序经常调用 C,而 C 智能使用 malloc/free 管理内存。
4 虚函数怎么实现的
编译器处理虚函数的原理方法是:给每个对象添加一个隐藏成员,该隐藏成员保存了一个
指向函数地址数组的指针,这个数组称为虚函数表,该表里面保存了虚函数的地址;调用
虚函数时,程序将查看该对象的表地址,然后转向相应的函数地址表,如果使用类声明定
义中的第一个虚函数,则程序将使用数组中的第一个函数地址,并执行具有该地址的函数
…。
使用虚函数包括一定的成本:
每个对象都将增大,增大为存储地址的空间;
对于每个类,编译器会创建出虚函数地址表;
对于虚函数调用,需要到表中查找地址,会增加额外的操作。
5 多态和继承
继承:可以使用现有类的所有功能,并且无需在编写原有类的情况下对这些功能进行扩展
新创建的类叫做子类或者派生类,被继承的类叫做基类或者父类。父类更通用,子类更具
体;
可以有效的实现代码复用,避免重复代码的出现。
继承概念的实现方式有三类:实现继承、接口继承和可视继承。
实现继承是指使用基类的属性和方法而无需额外编码的能力;
接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。
资源评论
seu_nuaa_zc
- 粉丝: 48
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功