编辑推荐
300多道面试真题,本书汇总国内外众多著名IT企业近几年的C++面试笔试真题并予以解析,按知识点类型对常见的C++语言难点和疑点进行了系统归纳和透彻剖析,并提供了一定数量的自测题便于自我检验。
内容简介
本书汇总国内外众多著名IT企业近几年的C++面试笔试真题并予以解析,按知识点类型对常见的C++语言难点和疑点进行了系统归纳和透彻剖析,并提供了一定数量的自测题以便于读者自我检验。
全书逻辑清晰,通俗易懂,适合参加IT企业校园招聘和笔试面试环节的同学复习,也适合C++语言编程爱好者和在校学生阅读与提高。
作者简介
李春葆:武汉大学教授,主要研究方向为数据挖掘和算法设计,从事近30年计算机C/C++语言、数据结构和算法设计等课程的第一线本科教学工作,具备丰富的教学经验,曾参于深圳名企的笔试和面试题库建设。出版多本C/C++语言、数据结构、算法设计与分析及数据库开发方面的精品教材和教学辅导书。
李筱驰:
美国俄亥俄州立大学计算机科学专业硕士毕业,曾参加谷歌等名企面试,具备比较丰富的企业笔试和面试经验。目前在西雅图*总部工作。
目录
第1章 C++中的C 1
常见考点 1
1.1 类型系统和类型安全 1
1.1.1 要点归纳 1
1.1.2 面试真题解析 3
1.2 const和volatile 4
1.2.1 要点归纳 4
1.2.2 面试真题解析 6
1.3 C++的显式类型转换 7
1.3.1 要点归纳 7
1.3.2 面试真题解析 9
1.4 内存管理 10
1.4.1 要点归纳 10
1.4.2 面试真题解析 13
1.5 C++函数设计 15
1.5.1 要点归纳 15
1.5.2 面试真题解析 22
1.6 断言 27
1.6.1 要点归纳 27
1.6.2 面试真题解析 27
1.7 自测题和参考答案 28
1.7.1 自测题 28
1.7.2 参考答案 31
第2章 类和对象Ⅰ 33
常见考点 33
2.1 类 33
2.1.1 要点归纳 33
2.1.2 面试真题解析 48
2.2 静态成员和静态对象 57
2.2.1 要点归纳 57
2.2.2 面试真题解析 60
2.3 对象指针 62
2.3.1 要点归纳 62
2.3.2 面试真题解析 64
2.4 对象数组 66
2.4.1 要点归纳 66
2.4.2 面试真题解析 69
2.5 this指针 70
2.5.1 要点归纳 70
2.5.2 面试真题解析 76
2.6 对象之间的复制 78
2.6.1 要点归纳 78
2.6.2 面试真题解析 82
2.7 自测题和参考答案 85
2.7.1 自测题 85
2.7.2 参考答案 91
第3章 类和对象Ⅱ 94
常见考点 94
3.1 常对象和常对象成员 94
3.1.1 要点归纳 94
3.1.2 面试真题解析 98
3.2 C++中的explicit 101
3.2.1 要点归纳 101
3.2.2 面试真题解析 102
3.3 子对象 103
3.3.1 要点归纳 103
3.3.2 面试真题解析 108
3.4 嵌套类和局部类 109
3.4.1 要点归纳 109
3.4.2 面试真题解析 111
3.5 自测题和参考答案 114
3.5.1 自测题 114
3.5.2 参考答案 117
第4章 友元和运算符重载 119
常见考点 119
4.1 友元函数 119
4.1.1 要点归纳 119
4.1.2 面试真题解析 124
4.2 友元类 126
4.2.1 要点归纳 126
4.2.2 面试真题解析 127
4.3 运算符重载概述 128
4.3.1 要点归纳 128
4.3.2 面试真题解析 130
4.4 运算符重载设计 132
4.4.1 要点归纳 132
4.4.2 面试真题解析 146
4.5 两个类对象之间的转换 154
4.5.1 要点归纳 154
4.5.2 面试真题解析 156
4.6 自测题和参考答案 157
4.6.1 自测题 157
4.6.2 参考答案 162
第5章 模板和异常处理 166
常见考点 166
5.1 函数模板 166
5.1.1 要点归纳 166
5.1.2 面试真题解析 172
5.2 类模板 175
5.2.1 要点归纳 175
5.2.2 面试真题解析 182
5.3 异常处理 183
5.3.1 要点归纳 183
5.3.2 面试真题解析 188
5.4 自测题和参考答案 190
5.4.1 自测题 190
5.4.2 参考答案 192
第6章 继承和派生 193
常见考点 193
6.1 继承和派生基础 193
6.1.1 要点归纳 193
6.1.2 面试真题解析 204
6.2 基类对象和派生类对象的使用关系 217
6.2.1 要点归纳 217
6.2.2 面试真题解析 220
6.3 虚继承 227
6.3.1 要点归纳 227
6.3.2 面试真题解析 238
6.4 自测题和参考答案 242
6.4.1 自测题 242
6.4.2 参考答案 248
第7章 虚函数和多态性 251
常见考点 251
7.1 虚函数 251
7.1.1 要点归纳 251
7.1.2 面试真题解析 266
7.2 纯虚函数和抽象类 289
7.2.1 要点归纳 289
7.2.2 面试真题解析 291
7.3 自测题和参考答案 294
7.3.1 自测题 294
7.3.2 参考答案 300
精彩书摘
第3章·
类和对象Ⅱ
* 常对象的使用方法。
* 常数据成员和常成员函数的使用方法。
* mutable数据成员的特点。
* 构造函数中初始化列表的使用方法。
* explicit关键字的作用。
* 子对象的使用方法。
* 使用类前向引用声明的情况。
* 子对象构造函数的设计和执行次序。
* 静态子对象的特点。
* 嵌套类和局部类的设计方法与作用。
3.1 常对象和常对象成员
3.1.1 要点归纳
1.常对象
常对象是指对象常量,其一般定义格式如下:
类名 const 对象名;
或者
const 类名 对象名;
? 在使用常对象时需要注意以下几点:
? 在定义常对象时必须进行初始化。
? 常对象的数据成员不能被更新。
? 如果一个对象被定义为常对象,则不能调用该对象的非const成员函数,否则会报错。这样做是为了防止非const成员函数修改常对象中的数据成员值,因为const成员函数是不可以修改对象中的数据成员值的。
2.常对象成员
常对象成员包括常数据成员和常成员函数。
常数据成员
类的成员数据可以是常量和常引用,使用const定义的数据成员为常数据成员。如果在一个类中定义了n个常数据成员,那么如何给它们赋初值呢?只能通过构造函数,并且构造函数只能通过成员初始化列表来实现,其一般格式如下:
构造函数(参数表):常数据成员1(参数1),常数据成员2(参数2),…, 常数据成员n(参数n)
{ … }
其中,冒号后面是一个成员初始化列表,它包含一个初始化项,当有多个初始化项时要用逗号分隔开。在执行构造函数时自动将“常数据成员1”赋值为“参数1”的值、“常数据成员2”赋值为“参数2”的值、…、“常数据成员n”赋值为“参数n”的值。
对成员初始化列表的深入讨论
实际上,对于类的非常数据成员也可以通过构造函数的成员初始化列表来初始化,只不过非常数据成员还可以在构造函数体内赋值,成员初始化列表是直接调用拷贝构造函数来完成的。
带成员初始化列表的构造函数的执行顺序是这样的:先执行初始化列表,再执行函数体,对于含有多个初始化项的列表不是按照从左到右或者从右到左的顺序执行,而是按照数据成员在类中定义的顺序执行的。例如有以下程序:
#include
class Test
{ int a,b;
const int x; //常数据成员
public:
Test(int i,int j,int k):x(i),a(b),b(j) { b=k; } //构造函数
void display()
{
cout << "a=" << a << ",b=" << b << ",x=" << x << endl;
}
};
void main()
{ Test s(1,2,3);
s.display();
……
前言/序言
前 言
C++语言是C语言的扩展,是一种基础的面向对象的编程语言,提供了类、模板、函数重载和运算符重载设计等功能,充分支持抽象、继承和多态等面向对象程序设计的特征,方便大型软件的开发。
相比C语言,C++语言中的概念众多,掌握难点更高。实际上C++对象在内存中的存储组织结构是核心,只要抓住了这个纲,对其他概念的理解就会迎刃而解。本书就是以它提纲挈领,系统归纳C++语言常见的知识要点,汇总国内外众多著名IT企业近几年的C++面试笔试真题并予以解析,透彻剖析了难点和疑点。
本书不是面向初学者,而是以知识点提纲挈领,章节之间难免会出现要点重复的现象,敬请读者谅解。书中侧重C++语言的语法,相关算法设计在本丛书的其他书中讨论。另外,为了方便阅读,对于部分企业面试笔试中的文字和代码在格式上做了调整。书中程序在VC++ 6.0环境中调试通过(个别程序在Dev C++中调试)。
在编写过程中参考了众多网站和博客,对此无法一一列出,编者对其作者表示衷心感谢。
限于编者水平,书中难免存在遗漏,恳请读者批评指正。
编 者
2017年10月
直击招聘 程序员面试笔试C++语言深度解析(直击招聘) 电子书 下载 mobi epub pdf txt